1// Copyright 2021 Google LLC. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// Code generated file. DO NOT EDIT. 6 7// Package serviceconsumermanagement provides access to the Service Consumer Management API. 8// 9// For product documentation, see: https://cloud.google.com/service-consumer-management/docs/overview 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/serviceconsumermanagement/v1" 16// ... 17// ctx := context.Background() 18// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx) 19// 20// In this example, Google Application Default Credentials are used for authentication. 21// 22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. 23// 24// Other authentication options 25// 26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 27// 28// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithAPIKey("AIza...")) 29// 30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 31// 32// config := &oauth2.Config{...} 33// // ... 34// token, err := config.Exchange(ctx, ...) 35// serviceconsumermanagementService, err := serviceconsumermanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 36// 37// See https://godoc.org/google.golang.org/api/option/ for details on options. 38package serviceconsumermanagement // import "google.golang.org/api/serviceconsumermanagement/v1" 39 40import ( 41 "bytes" 42 "context" 43 "encoding/json" 44 "errors" 45 "fmt" 46 "io" 47 "net/http" 48 "net/url" 49 "strconv" 50 "strings" 51 52 googleapi "google.golang.org/api/googleapi" 53 gensupport "google.golang.org/api/internal/gensupport" 54 option "google.golang.org/api/option" 55 internaloption "google.golang.org/api/option/internaloption" 56 htransport "google.golang.org/api/transport/http" 57) 58 59// Always reference these packages, just in case the auto-generated code 60// below doesn't. 61var _ = bytes.NewBuffer 62var _ = strconv.Itoa 63var _ = fmt.Sprintf 64var _ = json.NewDecoder 65var _ = io.Copy 66var _ = url.Parse 67var _ = gensupport.MarshalJSON 68var _ = googleapi.Version 69var _ = errors.New 70var _ = strings.Replace 71var _ = context.Canceled 72var _ = internaloption.WithDefaultEndpoint 73 74const apiId = "serviceconsumermanagement:v1" 75const apiName = "serviceconsumermanagement" 76const apiVersion = "v1" 77const basePath = "https://serviceconsumermanagement.googleapis.com/" 78const mtlsBasePath = "https://serviceconsumermanagement.mtls.googleapis.com/" 79 80// OAuth2 scopes used by this API. 81const ( 82 // See, edit, configure, and delete your Google Cloud data and see the 83 // email address for your Google Account. 84 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 85) 86 87// NewService creates a new APIService. 88func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) { 89 scopesOption := option.WithScopes( 90 "https://www.googleapis.com/auth/cloud-platform", 91 ) 92 // NOTE: prepend, so we don't override user-specified scopes. 93 opts = append([]option.ClientOption{scopesOption}, opts...) 94 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 95 opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) 96 client, endpoint, err := htransport.NewClient(ctx, opts...) 97 if err != nil { 98 return nil, err 99 } 100 s, err := New(client) 101 if err != nil { 102 return nil, err 103 } 104 if endpoint != "" { 105 s.BasePath = endpoint 106 } 107 return s, nil 108} 109 110// New creates a new APIService. It uses the provided http.Client for requests. 111// 112// Deprecated: please use NewService instead. 113// To provide a custom HTTP client, use option.WithHTTPClient. 114// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 115func New(client *http.Client) (*APIService, error) { 116 if client == nil { 117 return nil, errors.New("client is nil") 118 } 119 s := &APIService{client: client, BasePath: basePath} 120 s.Operations = NewOperationsService(s) 121 s.Services = NewServicesService(s) 122 return s, nil 123} 124 125type APIService struct { 126 client *http.Client 127 BasePath string // API endpoint base URL 128 UserAgent string // optional additional User-Agent fragment 129 130 Operations *OperationsService 131 132 Services *ServicesService 133} 134 135func (s *APIService) userAgent() string { 136 if s.UserAgent == "" { 137 return googleapi.UserAgent 138 } 139 return googleapi.UserAgent + " " + s.UserAgent 140} 141 142func NewOperationsService(s *APIService) *OperationsService { 143 rs := &OperationsService{s: s} 144 return rs 145} 146 147type OperationsService struct { 148 s *APIService 149} 150 151func NewServicesService(s *APIService) *ServicesService { 152 rs := &ServicesService{s: s} 153 rs.TenancyUnits = NewServicesTenancyUnitsService(s) 154 return rs 155} 156 157type ServicesService struct { 158 s *APIService 159 160 TenancyUnits *ServicesTenancyUnitsService 161} 162 163func NewServicesTenancyUnitsService(s *APIService) *ServicesTenancyUnitsService { 164 rs := &ServicesTenancyUnitsService{s: s} 165 return rs 166} 167 168type ServicesTenancyUnitsService struct { 169 s *APIService 170} 171 172// AddTenantProjectRequest: Request to add a newly created and 173// configured tenant project to a tenancy unit. 174type AddTenantProjectRequest struct { 175 // ProjectConfig: Configuration of the new tenant project to be added to 176 // tenancy unit resources. 177 ProjectConfig *TenantProjectConfig `json:"projectConfig,omitempty"` 178 179 // Tag: Required. Tag of the added project. Must be less than 128 180 // characters. Required. 181 Tag string `json:"tag,omitempty"` 182 183 // ForceSendFields is a list of field names (e.g. "ProjectConfig") to 184 // unconditionally include in API requests. By default, fields with 185 // empty or default values are omitted from API requests. However, any 186 // non-pointer, non-interface field appearing in ForceSendFields will be 187 // sent to the server regardless of whether the field is empty or not. 188 // This may be used to include empty fields in Patch requests. 189 ForceSendFields []string `json:"-"` 190 191 // NullFields is a list of field names (e.g. "ProjectConfig") to include 192 // in API requests with the JSON null value. By default, fields with 193 // empty values are omitted from API requests. However, any field with 194 // an empty value appearing in NullFields will be sent to the server as 195 // null. It is an error if a field in this list has a non-empty value. 196 // This may be used to include null fields in Patch requests. 197 NullFields []string `json:"-"` 198} 199 200func (s *AddTenantProjectRequest) MarshalJSON() ([]byte, error) { 201 type NoMethod AddTenantProjectRequest 202 raw := NoMethod(*s) 203 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 204} 205 206// Api: Api is a light-weight descriptor for an API Interface. 207// Interfaces are also described as "protocol buffer services" in some 208// contexts, such as by the "service" keyword in a .proto file, but they 209// are different from API Services, which represent a concrete 210// implementation of an interface as opposed to simply a description of 211// methods and bindings. They are also sometimes simply referred to as 212// "APIs" in other contexts, such as the name of this message itself. 213// See https://cloud.google.com/apis/design/glossary for detailed 214// terminology. 215type Api struct { 216 // Methods: The methods of this interface, in unspecified order. 217 Methods []*Method `json:"methods,omitempty"` 218 219 // Mixins: Included interfaces. See Mixin. 220 Mixins []*Mixin `json:"mixins,omitempty"` 221 222 // Name: The fully qualified name of this interface, including package 223 // name followed by the interface's simple name. 224 Name string `json:"name,omitempty"` 225 226 // Options: Any metadata attached to the interface. 227 Options []*Option `json:"options,omitempty"` 228 229 // SourceContext: Source context for the protocol buffer service 230 // represented by this message. 231 SourceContext *SourceContext `json:"sourceContext,omitempty"` 232 233 // Syntax: The source syntax of the service. 234 // 235 // Possible values: 236 // "SYNTAX_PROTO2" - Syntax `proto2`. 237 // "SYNTAX_PROTO3" - Syntax `proto3`. 238 Syntax string `json:"syntax,omitempty"` 239 240 // Version: A version string for this interface. If specified, must have 241 // the form `major-version.minor-version`, as in `1.10`. If the minor 242 // version is omitted, it defaults to zero. If the entire version field 243 // is empty, the major version is derived from the package name, as 244 // outlined below. If the field is not empty, the version in the package 245 // name will be verified to be consistent with what is provided here. 246 // The versioning schema uses semantic versioning (http://semver.org) 247 // where the major version number indicates a breaking change and the 248 // minor version an additive, non-breaking change. Both version numbers 249 // are signals to users what to expect from different versions, and 250 // should be carefully chosen based on the product plan. The major 251 // version is also reflected in the package name of the interface, which 252 // must end in `v`, as in `google.feature.v1`. For major versions 0 and 253 // 1, the suffix can be omitted. Zero major versions must only be used 254 // for experimental, non-GA interfaces. 255 Version string `json:"version,omitempty"` 256 257 // ForceSendFields is a list of field names (e.g. "Methods") to 258 // unconditionally include in API requests. By default, fields with 259 // empty or default values are omitted from API requests. However, any 260 // non-pointer, non-interface field appearing in ForceSendFields will be 261 // sent to the server regardless of whether the field is empty or not. 262 // This may be used to include empty fields in Patch requests. 263 ForceSendFields []string `json:"-"` 264 265 // NullFields is a list of field names (e.g. "Methods") to include in 266 // API requests with the JSON null value. By default, fields with empty 267 // values are omitted from API requests. However, any field with an 268 // empty value appearing in NullFields will be sent to the server as 269 // null. It is an error if a field in this list has a non-empty value. 270 // This may be used to include null fields in Patch requests. 271 NullFields []string `json:"-"` 272} 273 274func (s *Api) MarshalJSON() ([]byte, error) { 275 type NoMethod Api 276 raw := NoMethod(*s) 277 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 278} 279 280// ApplyTenantProjectConfigRequest: Request to apply configuration to an 281// existing tenant project. 282type ApplyTenantProjectConfigRequest struct { 283 // ProjectConfig: Configuration that should be applied to the existing 284 // tenant project. 285 ProjectConfig *TenantProjectConfig `json:"projectConfig,omitempty"` 286 287 // Tag: Required. Tag of the project. Must be less than 128 characters. 288 // Required. 289 Tag string `json:"tag,omitempty"` 290 291 // ForceSendFields is a list of field names (e.g. "ProjectConfig") to 292 // unconditionally include in API requests. By default, fields with 293 // empty or default values are omitted from API requests. However, any 294 // non-pointer, non-interface field appearing in ForceSendFields will be 295 // sent to the server regardless of whether the field is empty or not. 296 // This may be used to include empty fields in Patch requests. 297 ForceSendFields []string `json:"-"` 298 299 // NullFields is a list of field names (e.g. "ProjectConfig") to include 300 // in API requests with the JSON null value. By default, fields with 301 // empty values are omitted from API requests. However, any field with 302 // an empty value appearing in NullFields will be sent to the server as 303 // null. It is an error if a field in this list has a non-empty value. 304 // This may be used to include null fields in Patch requests. 305 NullFields []string `json:"-"` 306} 307 308func (s *ApplyTenantProjectConfigRequest) MarshalJSON() ([]byte, error) { 309 type NoMethod ApplyTenantProjectConfigRequest 310 raw := NoMethod(*s) 311 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 312} 313 314// AttachTenantProjectRequest: Request to attach an existing project to 315// the tenancy unit as a new tenant resource. 316type AttachTenantProjectRequest struct { 317 // ExternalResource: When attaching an external project, this is in the 318 // format of `projects/{project_number}`. 319 ExternalResource string `json:"externalResource,omitempty"` 320 321 // ReservedResource: When attaching a reserved project already in 322 // tenancy units, this is the tag of a tenant resource under the tenancy 323 // unit for the managed service's service producer project. The reserved 324 // tenant resource must be in an active state. 325 ReservedResource string `json:"reservedResource,omitempty"` 326 327 // Tag: Required. Tag of the tenant resource after attachment. Must be 328 // less than 128 characters. Required. 329 Tag string `json:"tag,omitempty"` 330 331 // ForceSendFields is a list of field names (e.g. "ExternalResource") to 332 // unconditionally include in API requests. By default, fields with 333 // empty or default values are omitted from API requests. However, any 334 // non-pointer, non-interface field appearing in ForceSendFields will be 335 // sent to the server regardless of whether the field is empty or not. 336 // This may be used to include empty fields in Patch requests. 337 ForceSendFields []string `json:"-"` 338 339 // NullFields is a list of field names (e.g. "ExternalResource") to 340 // include in API requests with the JSON null value. By default, fields 341 // with empty values are omitted from API requests. However, any field 342 // with an empty value appearing in NullFields will be sent to the 343 // server as null. It is an error if a field in this list has a 344 // non-empty value. This may be used to include null fields in Patch 345 // requests. 346 NullFields []string `json:"-"` 347} 348 349func (s *AttachTenantProjectRequest) MarshalJSON() ([]byte, error) { 350 type NoMethod AttachTenantProjectRequest 351 raw := NoMethod(*s) 352 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 353} 354 355// AuthProvider: Configuration for an authentication provider, including 356// support for JSON Web Token (JWT) 357// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 358type AuthProvider struct { 359 // Audiences: The list of JWT audiences 360 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 361 // that are allowed to access. A JWT containing any of these audiences 362 // will be accepted. When this setting is absent, JWTs with audiences: - 363 // "https://[service.name]/[google.protobuf.Api.name]" - 364 // "https://[service.name]/" will be accepted. For example, if no 365 // audiences are in the setting, LibraryService API will accept JWTs 366 // with the following audiences: - 367 // https://library-example.googleapis.com/google.example.library.v1.LibraryService 368 // - https://library-example.googleapis.com/ Example: audiences: 369 // bookstore_android.apps.googleusercontent.com, 370 // bookstore_web.apps.googleusercontent.com 371 Audiences string `json:"audiences,omitempty"` 372 373 // AuthorizationUrl: Redirect URL if JWT token is required but not 374 // present or is expired. Implement authorizationUrl of 375 // securityDefinitions in OpenAPI spec. 376 AuthorizationUrl string `json:"authorizationUrl,omitempty"` 377 378 // Id: The unique identifier of the auth provider. It will be referred 379 // to by `AuthRequirement.provider_id`. Example: "bookstore_auth". 380 Id string `json:"id,omitempty"` 381 382 // Issuer: Identifies the principal that issued the JWT. See 383 // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 384 // Usually a URL or an email address. Example: 385 // https://securetoken.google.com Example: 386 // 1234567-compute@developer.gserviceaccount.com 387 Issuer string `json:"issuer,omitempty"` 388 389 // JwksUri: URL of the provider's public key set to validate signature 390 // of the JWT. See OpenID Discovery 391 // (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). 392 // Optional if the key set document: - can be retrieved from OpenID 393 // Discovery 394 // (https://openid.net/specs/openid-connect-discovery-1_0.html) of the 395 // issuer. - can be inferred from the email domain of the issuer (e.g. a 396 // Google service account). Example: 397 // https://www.googleapis.com/oauth2/v1/certs 398 JwksUri string `json:"jwksUri,omitempty"` 399 400 // JwtLocations: Defines the locations to extract the JWT. JWT locations 401 // can be either from HTTP headers or URL query parameters. The rule is 402 // that the first match wins. The checking order is: checking all 403 // headers first, then URL query parameters. If not specified, default 404 // to use following 3 locations: 1) Authorization: Bearer 2) 405 // x-goog-iap-jwt-assertion 3) access_token query parameter Default 406 // locations can be specified as followings: jwt_locations: - header: 407 // Authorization value_prefix: "Bearer " - header: 408 // x-goog-iap-jwt-assertion - query: access_token 409 JwtLocations []*JwtLocation `json:"jwtLocations,omitempty"` 410 411 // ForceSendFields is a list of field names (e.g. "Audiences") to 412 // unconditionally include in API requests. By default, fields with 413 // empty or default values are omitted from API requests. However, any 414 // non-pointer, non-interface field appearing in ForceSendFields will be 415 // sent to the server regardless of whether the field is empty or not. 416 // This may be used to include empty fields in Patch requests. 417 ForceSendFields []string `json:"-"` 418 419 // NullFields is a list of field names (e.g. "Audiences") to include in 420 // API requests with the JSON null value. By default, fields with empty 421 // values are omitted from API requests. However, any field with an 422 // empty value appearing in NullFields will be sent to the server as 423 // null. It is an error if a field in this list has a non-empty value. 424 // This may be used to include null fields in Patch requests. 425 NullFields []string `json:"-"` 426} 427 428func (s *AuthProvider) MarshalJSON() ([]byte, error) { 429 type NoMethod AuthProvider 430 raw := NoMethod(*s) 431 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 432} 433 434// AuthRequirement: User-defined authentication requirements, including 435// support for JSON Web Token (JWT) 436// (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). 437type AuthRequirement struct { 438 // Audiences: NOTE: This will be deprecated soon, once 439 // AuthProvider.audiences is implemented and accepted in all the runtime 440 // components. The list of JWT audiences 441 // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). 442 // that are allowed to access. A JWT containing any of these audiences 443 // will be accepted. When this setting is absent, only JWTs with 444 // audience "https://Service_name/API_name" will be accepted. For 445 // example, if no audiences are in the setting, LibraryService API will 446 // only accept JWTs with the following audience 447 // "https://library-example.googleapis.com/google.example.library.v1.Libr 448 // aryService". Example: audiences: 449 // bookstore_android.apps.googleusercontent.com, 450 // bookstore_web.apps.googleusercontent.com 451 Audiences string `json:"audiences,omitempty"` 452 453 // ProviderId: id from authentication provider. Example: provider_id: 454 // bookstore_auth 455 ProviderId string `json:"providerId,omitempty"` 456 457 // ForceSendFields is a list of field names (e.g. "Audiences") to 458 // unconditionally include in API requests. By default, fields with 459 // empty or default values are omitted from API requests. However, any 460 // non-pointer, non-interface field appearing in ForceSendFields will be 461 // sent to the server regardless of whether the field is empty or not. 462 // This may be used to include empty fields in Patch requests. 463 ForceSendFields []string `json:"-"` 464 465 // NullFields is a list of field names (e.g. "Audiences") to include in 466 // API requests with the JSON null value. By default, fields with empty 467 // values are omitted from API requests. However, any field with an 468 // empty value appearing in NullFields will be sent to the server as 469 // null. It is an error if a field in this list has a non-empty value. 470 // This may be used to include null fields in Patch requests. 471 NullFields []string `json:"-"` 472} 473 474func (s *AuthRequirement) MarshalJSON() ([]byte, error) { 475 type NoMethod AuthRequirement 476 raw := NoMethod(*s) 477 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 478} 479 480// Authentication: `Authentication` defines the authentication 481// configuration for API methods provided by an API service. Example: 482// name: calendar.googleapis.com authentication: providers: - id: 483// google_calendar_auth jwks_uri: 484// https://www.googleapis.com/oauth2/v1/certs issuer: 485// https://securetoken.google.com rules: - selector: "*" requirements: 486// provider_id: google_calendar_auth - selector: 487// google.calendar.Delegate oauth: canonical_scopes: 488// https://www.googleapis.com/auth/calendar.read 489type Authentication struct { 490 // Providers: Defines a set of authentication providers that a service 491 // supports. 492 Providers []*AuthProvider `json:"providers,omitempty"` 493 494 // Rules: A list of authentication rules that apply to individual API 495 // methods. **NOTE:** All service configuration rules follow "last one 496 // wins" order. 497 Rules []*AuthenticationRule `json:"rules,omitempty"` 498 499 // ForceSendFields is a list of field names (e.g. "Providers") to 500 // unconditionally include in API requests. By default, fields with 501 // empty or default values are omitted from API requests. However, any 502 // non-pointer, non-interface field appearing in ForceSendFields will be 503 // sent to the server regardless of whether the field is empty or not. 504 // This may be used to include empty fields in Patch requests. 505 ForceSendFields []string `json:"-"` 506 507 // NullFields is a list of field names (e.g. "Providers") to include in 508 // API requests with the JSON null value. By default, fields with empty 509 // values are omitted from API requests. However, any field with an 510 // empty value appearing in NullFields will be sent to the server as 511 // null. It is an error if a field in this list has a non-empty value. 512 // This may be used to include null fields in Patch requests. 513 NullFields []string `json:"-"` 514} 515 516func (s *Authentication) MarshalJSON() ([]byte, error) { 517 type NoMethod Authentication 518 raw := NoMethod(*s) 519 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 520} 521 522// AuthenticationRule: Authentication rules for the service. By default, 523// if a method has any authentication requirements, every request must 524// include a valid credential matching one of the requirements. It's an 525// error to include more than one kind of credential in a single 526// request. If a method doesn't have any auth requirements, request 527// credentials will be ignored. 528type AuthenticationRule struct { 529 // AllowWithoutCredential: If true, the service accepts API keys without 530 // any other credential. This flag only applies to HTTP and gRPC 531 // requests. 532 AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"` 533 534 // Oauth: The requirements for OAuth credentials. 535 Oauth *OAuthRequirements `json:"oauth,omitempty"` 536 537 // Requirements: Requirements for additional authentication providers. 538 Requirements []*AuthRequirement `json:"requirements,omitempty"` 539 540 // Selector: Selects the methods to which this rule applies. Refer to 541 // selector for syntax details. 542 Selector string `json:"selector,omitempty"` 543 544 // ForceSendFields is a list of field names (e.g. 545 // "AllowWithoutCredential") to unconditionally include in API requests. 546 // By default, fields with empty or default values are omitted from API 547 // requests. However, any non-pointer, non-interface field appearing in 548 // ForceSendFields will be sent to the server regardless of whether the 549 // field is empty or not. This may be used to include empty fields in 550 // Patch requests. 551 ForceSendFields []string `json:"-"` 552 553 // NullFields is a list of field names (e.g. "AllowWithoutCredential") 554 // to include in API requests with the JSON null value. By default, 555 // fields with empty values are omitted from API requests. However, any 556 // field with an empty value appearing in NullFields will be sent to the 557 // server as null. It is an error if a field in this list has a 558 // non-empty value. This may be used to include null fields in Patch 559 // requests. 560 NullFields []string `json:"-"` 561} 562 563func (s *AuthenticationRule) MarshalJSON() ([]byte, error) { 564 type NoMethod AuthenticationRule 565 raw := NoMethod(*s) 566 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 567} 568 569// Backend: `Backend` defines the backend configuration for a service. 570type Backend struct { 571 // Rules: A list of API backend rules that apply to individual API 572 // methods. **NOTE:** All service configuration rules follow "last one 573 // wins" order. 574 Rules []*BackendRule `json:"rules,omitempty"` 575 576 // ForceSendFields is a list of field names (e.g. "Rules") to 577 // unconditionally include in API requests. By default, fields with 578 // empty or default values are omitted from API requests. However, any 579 // non-pointer, non-interface field appearing in ForceSendFields will be 580 // sent to the server regardless of whether the field is empty or not. 581 // This may be used to include empty fields in Patch requests. 582 ForceSendFields []string `json:"-"` 583 584 // NullFields is a list of field names (e.g. "Rules") to include in API 585 // requests with the JSON null value. By default, fields with empty 586 // values are omitted from API requests. However, any field with an 587 // empty value appearing in NullFields will be sent to the server as 588 // null. It is an error if a field in this list has a non-empty value. 589 // This may be used to include null fields in Patch requests. 590 NullFields []string `json:"-"` 591} 592 593func (s *Backend) MarshalJSON() ([]byte, error) { 594 type NoMethod Backend 595 raw := NoMethod(*s) 596 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 597} 598 599// BackendRule: A backend rule provides configuration for an individual 600// API element. 601type BackendRule struct { 602 // Address: The address of the API backend. The scheme is used to 603 // determine the backend protocol and security. The following schemes 604 // are accepted: SCHEME PROTOCOL SECURITY http:// HTTP None https:// 605 // HTTP TLS grpc:// gRPC None grpcs:// gRPC TLS It is recommended to 606 // explicitly include a scheme. Leaving out the scheme may cause 607 // constrasting behaviors across platforms. If the port is unspecified, 608 // the default is: - 80 for schemes without TLS - 443 for schemes with 609 // TLS For HTTP backends, use protocol to specify the protocol version. 610 Address string `json:"address,omitempty"` 611 612 // Deadline: The number of seconds to wait for a response from a 613 // request. The default varies based on the request protocol and 614 // deployment environment. 615 Deadline float64 `json:"deadline,omitempty"` 616 617 // DisableAuth: When disable_auth is true, a JWT ID token won't be 618 // generated and the original "Authorization" HTTP header will be 619 // preserved. If the header is used to carry the original token and is 620 // expected by the backend, this field must be set to true to preserve 621 // the header. 622 DisableAuth bool `json:"disableAuth,omitempty"` 623 624 // JwtAudience: The JWT audience is used when generating a JWT ID token 625 // for the backend. This ID token will be added in the HTTP 626 // "authorization" header, and sent to the backend. 627 JwtAudience string `json:"jwtAudience,omitempty"` 628 629 // OperationDeadline: The number of seconds to wait for the completion 630 // of a long running operation. The default is no deadline. 631 OperationDeadline float64 `json:"operationDeadline,omitempty"` 632 633 // Possible values: 634 // "PATH_TRANSLATION_UNSPECIFIED" 635 // "CONSTANT_ADDRESS" - Use the backend address as-is, with no 636 // modification to the path. If the URL pattern contains variables, the 637 // variable names and values will be appended to the query string. If a 638 // query string parameter and a URL pattern variable have the same name, 639 // this may result in duplicate keys in the query string. # Examples 640 // Given the following operation config: Method path: 641 // /api/company/{cid}/user/{uid} Backend address: 642 // https://example.cloudfunctions.net/getUser Requests to the following 643 // request paths will call the backend at the translated path: Request 644 // path: /api/company/widgetworks/user/johndoe Translated: 645 // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe 646 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 647 // Translated: 648 // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe 649 // "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the 650 // backend address. # Examples Given the following operation config: 651 // Method path: /api/company/{cid}/user/{uid} Backend address: 652 // https://example.appspot.com Requests to the following request paths 653 // will call the backend at the translated path: Request path: 654 // /api/company/widgetworks/user/johndoe Translated: 655 // https://example.appspot.com/api/company/widgetworks/user/johndoe 656 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 657 // Translated: 658 // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST 659 PathTranslation string `json:"pathTranslation,omitempty"` 660 661 // Protocol: The protocol used for sending a request to the backend. The 662 // supported values are "http/1.1" and "h2". The default value is 663 // inferred from the scheme in the address field: SCHEME PROTOCOL 664 // http:// http/1.1 https:// http/1.1 grpc:// h2 grpcs:// h2 For secure 665 // HTTP backends (https://) that support HTTP/2, set this field to "h2" 666 // for improved performance. Configuring this field to non-default 667 // values is only supported for secure HTTP backends. This field will be 668 // ignored for all other backends. See 669 // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids 670 // for more details on the supported values. 671 Protocol string `json:"protocol,omitempty"` 672 673 // Selector: Selects the methods to which this rule applies. Refer to 674 // selector for syntax details. 675 Selector string `json:"selector,omitempty"` 676 677 // ForceSendFields is a list of field names (e.g. "Address") to 678 // unconditionally include in API requests. By default, fields with 679 // empty or default values are omitted from API requests. However, any 680 // non-pointer, non-interface field appearing in ForceSendFields will be 681 // sent to the server regardless of whether the field is empty or not. 682 // This may be used to include empty fields in Patch requests. 683 ForceSendFields []string `json:"-"` 684 685 // NullFields is a list of field names (e.g. "Address") to include in 686 // API requests with the JSON null value. By default, fields with empty 687 // values are omitted from API requests. However, any field with an 688 // empty value appearing in NullFields will be sent to the server as 689 // null. It is an error if a field in this list has a non-empty value. 690 // This may be used to include null fields in Patch requests. 691 NullFields []string `json:"-"` 692} 693 694func (s *BackendRule) MarshalJSON() ([]byte, error) { 695 type NoMethod BackendRule 696 raw := NoMethod(*s) 697 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 698} 699 700func (s *BackendRule) UnmarshalJSON(data []byte) error { 701 type NoMethod BackendRule 702 var s1 struct { 703 Deadline gensupport.JSONFloat64 `json:"deadline"` 704 OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"` 705 *NoMethod 706 } 707 s1.NoMethod = (*NoMethod)(s) 708 if err := json.Unmarshal(data, &s1); err != nil { 709 return err 710 } 711 s.Deadline = float64(s1.Deadline) 712 s.OperationDeadline = float64(s1.OperationDeadline) 713 return nil 714} 715 716// Billing: Billing related configuration of the service. The following 717// example shows how to configure monitored resources and metrics for 718// billing, `consumer_destinations` is the only supported destination 719// and the monitored resources need at least one label key 720// `cloud.googleapis.com/location` to indicate the location of the 721// billing usage, using different monitored resources between monitoring 722// and billing is recommended so they can be evolved independently: 723// monitored_resources: - type: library.googleapis.com/billing_branch 724// labels: - key: cloud.googleapis.com/location description: | 725// Predefined label to support billing location restriction. - key: city 726// description: | Custom label to define the city where the library 727// branch is located in. - key: name description: Custom label to define 728// the name of the library branch. metrics: - name: 729// library.googleapis.com/book/borrowed_count metric_kind: DELTA 730// value_type: INT64 unit: "1" billing: consumer_destinations: - 731// monitored_resource: library.googleapis.com/billing_branch metrics: - 732// library.googleapis.com/book/borrowed_count 733type Billing struct { 734 // ConsumerDestinations: Billing configurations for sending metrics to 735 // the consumer project. There can be multiple consumer destinations per 736 // service, each one must have a different monitored resource type. A 737 // metric can be used in at most one consumer destination. 738 ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"` 739 740 // ForceSendFields is a list of field names (e.g. 741 // "ConsumerDestinations") to unconditionally include in API requests. 742 // By default, fields with empty or default values are omitted from API 743 // requests. However, any non-pointer, non-interface field appearing in 744 // ForceSendFields will be sent to the server regardless of whether the 745 // field is empty or not. This may be used to include empty fields in 746 // Patch requests. 747 ForceSendFields []string `json:"-"` 748 749 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 750 // include in API requests with the JSON null value. By default, fields 751 // with empty values are omitted from API requests. However, any field 752 // with an empty value appearing in NullFields will be sent to the 753 // server as null. It is an error if a field in this list has a 754 // non-empty value. This may be used to include null fields in Patch 755 // requests. 756 NullFields []string `json:"-"` 757} 758 759func (s *Billing) MarshalJSON() ([]byte, error) { 760 type NoMethod Billing 761 raw := NoMethod(*s) 762 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 763} 764 765// BillingConfig: Describes the billing configuration for a new tenant 766// project. 767type BillingConfig struct { 768 // BillingAccount: Name of the billing account. For example 769 // `billingAccounts/012345-567890-ABCDEF`. 770 BillingAccount string `json:"billingAccount,omitempty"` 771 772 // ForceSendFields is a list of field names (e.g. "BillingAccount") to 773 // unconditionally include in API requests. By default, fields with 774 // empty or default values are omitted from API requests. However, any 775 // non-pointer, non-interface field appearing in ForceSendFields will be 776 // sent to the server regardless of whether the field is empty or not. 777 // This may be used to include empty fields in Patch requests. 778 ForceSendFields []string `json:"-"` 779 780 // NullFields is a list of field names (e.g. "BillingAccount") to 781 // include in API requests with the JSON null value. By default, fields 782 // with empty values are omitted from API requests. However, any field 783 // with an empty value appearing in NullFields will be sent to the 784 // server as null. It is an error if a field in this list has a 785 // non-empty value. This may be used to include null fields in Patch 786 // requests. 787 NullFields []string `json:"-"` 788} 789 790func (s *BillingConfig) MarshalJSON() ([]byte, error) { 791 type NoMethod BillingConfig 792 raw := NoMethod(*s) 793 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 794} 795 796// BillingDestination: Configuration of a specific billing destination 797// (Currently only support bill against consumer project). 798type BillingDestination struct { 799 // Metrics: Names of the metrics to report to this billing destination. 800 // Each name must be defined in Service.metrics section. 801 Metrics []string `json:"metrics,omitempty"` 802 803 // MonitoredResource: The monitored resource type. The type must be 804 // defined in Service.monitored_resources section. 805 MonitoredResource string `json:"monitoredResource,omitempty"` 806 807 // ForceSendFields is a list of field names (e.g. "Metrics") to 808 // unconditionally include in API requests. By default, fields with 809 // empty or default values are omitted from API requests. However, any 810 // non-pointer, non-interface field appearing in ForceSendFields will be 811 // sent to the server regardless of whether the field is empty or not. 812 // This may be used to include empty fields in Patch requests. 813 ForceSendFields []string `json:"-"` 814 815 // NullFields is a list of field names (e.g. "Metrics") to include in 816 // API requests with the JSON null value. By default, fields with empty 817 // values are omitted from API requests. However, any field with an 818 // empty value appearing in NullFields will be sent to the server as 819 // null. It is an error if a field in this list has a non-empty value. 820 // This may be used to include null fields in Patch requests. 821 NullFields []string `json:"-"` 822} 823 824func (s *BillingDestination) MarshalJSON() ([]byte, error) { 825 type NoMethod BillingDestination 826 raw := NoMethod(*s) 827 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 828} 829 830// CancelOperationRequest: The request message for 831// Operations.CancelOperation. 832type CancelOperationRequest struct { 833} 834 835// Context: `Context` defines which contexts an API requests. Example: 836// context: rules: - selector: "*" requested: - 837// google.rpc.context.ProjectContext - google.rpc.context.OriginContext 838// The above specifies that all methods in the API request 839// `google.rpc.context.ProjectContext` and 840// `google.rpc.context.OriginContext`. Available context types are 841// defined in package `google.rpc.context`. This also provides mechanism 842// to allowlist any protobuf message extension that can be sent in grpc 843// metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” 844// format. For example, list any service specific protobuf types that 845// can appear in grpc metadata as follows in your yaml file: Example: 846// context: rules: - selector: 847// "google.example.library.v1.LibraryService.CreateBook" 848// allowed_request_extensions: - google.foo.v1.NewExtension 849// allowed_response_extensions: - google.foo.v1.NewExtension You can 850// also specify extension ID instead of fully qualified extension name 851// here. 852type Context struct { 853 // Rules: A list of RPC context rules that apply to individual API 854 // methods. **NOTE:** All service configuration rules follow "last one 855 // wins" order. 856 Rules []*ContextRule `json:"rules,omitempty"` 857 858 // ForceSendFields is a list of field names (e.g. "Rules") to 859 // unconditionally include in API requests. By default, fields with 860 // empty or default values are omitted from API requests. However, any 861 // non-pointer, non-interface field appearing in ForceSendFields will be 862 // sent to the server regardless of whether the field is empty or not. 863 // This may be used to include empty fields in Patch requests. 864 ForceSendFields []string `json:"-"` 865 866 // NullFields is a list of field names (e.g. "Rules") to include in API 867 // requests with the JSON null value. By default, fields with empty 868 // values are omitted from API requests. However, any field with an 869 // empty value appearing in NullFields will be sent to the server as 870 // null. It is an error if a field in this list has a non-empty value. 871 // This may be used to include null fields in Patch requests. 872 NullFields []string `json:"-"` 873} 874 875func (s *Context) MarshalJSON() ([]byte, error) { 876 type NoMethod Context 877 raw := NoMethod(*s) 878 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 879} 880 881// ContextRule: A context rule provides information about the context 882// for an individual API element. 883type ContextRule struct { 884 // AllowedRequestExtensions: A list of full type names or extension IDs 885 // of extensions allowed in grpc side channel from client to backend. 886 AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"` 887 888 // AllowedResponseExtensions: A list of full type names or extension IDs 889 // of extensions allowed in grpc side channel from backend to client. 890 AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"` 891 892 // Provided: A list of full type names of provided contexts. 893 Provided []string `json:"provided,omitempty"` 894 895 // Requested: A list of full type names of requested contexts. 896 Requested []string `json:"requested,omitempty"` 897 898 // Selector: Selects the methods to which this rule applies. Refer to 899 // selector for syntax details. 900 Selector string `json:"selector,omitempty"` 901 902 // ForceSendFields is a list of field names (e.g. 903 // "AllowedRequestExtensions") to unconditionally include in API 904 // requests. By default, fields with empty or default values are omitted 905 // from API requests. However, any non-pointer, non-interface field 906 // appearing in ForceSendFields will be sent to the server regardless of 907 // whether the field is empty or not. This may be used to include empty 908 // fields in Patch requests. 909 ForceSendFields []string `json:"-"` 910 911 // NullFields is a list of field names (e.g. "AllowedRequestExtensions") 912 // to include in API requests with the JSON null value. By default, 913 // fields with empty values are omitted from API requests. However, any 914 // field with an empty value appearing in NullFields will be sent to the 915 // server as null. It is an error if a field in this list has a 916 // non-empty value. This may be used to include null fields in Patch 917 // requests. 918 NullFields []string `json:"-"` 919} 920 921func (s *ContextRule) MarshalJSON() ([]byte, error) { 922 type NoMethod ContextRule 923 raw := NoMethod(*s) 924 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 925} 926 927// Control: Selects and configures the service controller used by the 928// service. The service controller handles features like abuse, quota, 929// billing, logging, monitoring, etc. 930type Control struct { 931 // Environment: The service control environment to use. If empty, no 932 // control plane feature (like quota and billing) will be enabled. 933 Environment string `json:"environment,omitempty"` 934 935 // ForceSendFields is a list of field names (e.g. "Environment") to 936 // unconditionally include in API requests. By default, fields with 937 // empty or default values are omitted from API requests. However, any 938 // non-pointer, non-interface field appearing in ForceSendFields will be 939 // sent to the server regardless of whether the field is empty or not. 940 // This may be used to include empty fields in Patch requests. 941 ForceSendFields []string `json:"-"` 942 943 // NullFields is a list of field names (e.g. "Environment") to include 944 // in API requests with the JSON null value. By default, fields with 945 // empty values are omitted from API requests. However, any field with 946 // an empty value appearing in NullFields will be sent to the server as 947 // null. It is an error if a field in this list has a non-empty value. 948 // This may be used to include null fields in Patch requests. 949 NullFields []string `json:"-"` 950} 951 952func (s *Control) MarshalJSON() ([]byte, error) { 953 type NoMethod Control 954 raw := NoMethod(*s) 955 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 956} 957 958// CreateTenancyUnitRequest: Request to create a tenancy unit for a 959// service consumer of a managed service. 960type CreateTenancyUnitRequest struct { 961 // TenancyUnitId: Optional. Optional service producer-provided 962 // identifier of the tenancy unit. Must be no longer than 40 characters 963 // and preferably URI friendly. If it isn't provided, a UID for the 964 // tenancy unit is automatically generated. The identifier must be 965 // unique across a managed service. If the tenancy unit already exists 966 // for the managed service and service consumer pair, calling 967 // `CreateTenancyUnit` returns the existing tenancy unit if the provided 968 // identifier is identical or empty, otherwise the call fails. 969 TenancyUnitId string `json:"tenancyUnitId,omitempty"` 970 971 // ForceSendFields is a list of field names (e.g. "TenancyUnitId") to 972 // unconditionally include in API requests. By default, fields with 973 // empty or default values are omitted from API requests. However, any 974 // non-pointer, non-interface field appearing in ForceSendFields will be 975 // sent to the server regardless of whether the field is empty or not. 976 // This may be used to include empty fields in Patch requests. 977 ForceSendFields []string `json:"-"` 978 979 // NullFields is a list of field names (e.g. "TenancyUnitId") to include 980 // in API requests with the JSON null value. By default, fields with 981 // empty values are omitted from API requests. However, any field with 982 // an empty value appearing in NullFields will be sent to the server as 983 // null. It is an error if a field in this list has a non-empty value. 984 // This may be used to include null fields in Patch requests. 985 NullFields []string `json:"-"` 986} 987 988func (s *CreateTenancyUnitRequest) MarshalJSON() ([]byte, error) { 989 type NoMethod CreateTenancyUnitRequest 990 raw := NoMethod(*s) 991 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 992} 993 994// CustomError: Customize service error responses. For example, list any 995// service specific protobuf types that can appear in error detail lists 996// of error responses. Example: custom_error: types: - 997// google.foo.v1.CustomError - google.foo.v1.AnotherError 998type CustomError struct { 999 // Rules: The list of custom error rules that apply to individual API 1000 // messages. **NOTE:** All service configuration rules follow "last one 1001 // wins" order. 1002 Rules []*CustomErrorRule `json:"rules,omitempty"` 1003 1004 // Types: The list of custom error detail types, e.g. 1005 // 'google.foo.v1.CustomError'. 1006 Types []string `json:"types,omitempty"` 1007 1008 // ForceSendFields is a list of field names (e.g. "Rules") to 1009 // unconditionally include in API requests. By default, fields with 1010 // empty or default values are omitted from API requests. However, any 1011 // non-pointer, non-interface field appearing in ForceSendFields will be 1012 // sent to the server regardless of whether the field is empty or not. 1013 // This may be used to include empty fields in Patch requests. 1014 ForceSendFields []string `json:"-"` 1015 1016 // NullFields is a list of field names (e.g. "Rules") to include in API 1017 // requests with the JSON null value. By default, fields with empty 1018 // values are omitted from API requests. However, any field with an 1019 // empty value appearing in NullFields will be sent to the server as 1020 // null. It is an error if a field in this list has a non-empty value. 1021 // This may be used to include null fields in Patch requests. 1022 NullFields []string `json:"-"` 1023} 1024 1025func (s *CustomError) MarshalJSON() ([]byte, error) { 1026 type NoMethod CustomError 1027 raw := NoMethod(*s) 1028 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1029} 1030 1031// CustomErrorRule: A custom error rule. 1032type CustomErrorRule struct { 1033 // IsErrorType: Mark this message as possible payload in error response. 1034 // Otherwise, objects of this type will be filtered when they appear in 1035 // error payload. 1036 IsErrorType bool `json:"isErrorType,omitempty"` 1037 1038 // Selector: Selects messages to which this rule applies. Refer to 1039 // selector for syntax details. 1040 Selector string `json:"selector,omitempty"` 1041 1042 // ForceSendFields is a list of field names (e.g. "IsErrorType") to 1043 // unconditionally include in API requests. By default, fields with 1044 // empty or default values are omitted from API requests. However, any 1045 // non-pointer, non-interface field appearing in ForceSendFields will be 1046 // sent to the server regardless of whether the field is empty or not. 1047 // This may be used to include empty fields in Patch requests. 1048 ForceSendFields []string `json:"-"` 1049 1050 // NullFields is a list of field names (e.g. "IsErrorType") to include 1051 // in API requests with the JSON null value. By default, fields with 1052 // empty values are omitted from API requests. However, any field with 1053 // an empty value appearing in NullFields will be sent to the server as 1054 // null. It is an error if a field in this list has a non-empty value. 1055 // This may be used to include null fields in Patch requests. 1056 NullFields []string `json:"-"` 1057} 1058 1059func (s *CustomErrorRule) MarshalJSON() ([]byte, error) { 1060 type NoMethod CustomErrorRule 1061 raw := NoMethod(*s) 1062 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1063} 1064 1065// CustomHttpPattern: A custom pattern is used for defining custom HTTP 1066// verb. 1067type CustomHttpPattern struct { 1068 // Kind: The name of this custom HTTP verb. 1069 Kind string `json:"kind,omitempty"` 1070 1071 // Path: The path matched by this custom verb. 1072 Path string `json:"path,omitempty"` 1073 1074 // ForceSendFields is a list of field names (e.g. "Kind") to 1075 // unconditionally include in API requests. By default, fields with 1076 // empty or default values are omitted from API requests. However, any 1077 // non-pointer, non-interface field appearing in ForceSendFields will be 1078 // sent to the server regardless of whether the field is empty or not. 1079 // This may be used to include empty fields in Patch requests. 1080 ForceSendFields []string `json:"-"` 1081 1082 // NullFields is a list of field names (e.g. "Kind") to include in API 1083 // requests with the JSON null value. By default, fields with empty 1084 // values are omitted from API requests. However, any field with an 1085 // empty value appearing in NullFields will be sent to the server as 1086 // null. It is an error if a field in this list has a non-empty value. 1087 // This may be used to include null fields in Patch requests. 1088 NullFields []string `json:"-"` 1089} 1090 1091func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) { 1092 type NoMethod CustomHttpPattern 1093 raw := NoMethod(*s) 1094 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1095} 1096 1097// DeleteTenantProjectRequest: Request message to delete tenant project 1098// resource from the tenancy unit. 1099type DeleteTenantProjectRequest struct { 1100 // Tag: Required. Tag of the resource within the tenancy unit. 1101 Tag string `json:"tag,omitempty"` 1102 1103 // ForceSendFields is a list of field names (e.g. "Tag") to 1104 // unconditionally include in API requests. By default, fields with 1105 // empty or default values are omitted from API requests. However, any 1106 // non-pointer, non-interface field appearing in ForceSendFields will be 1107 // sent to the server regardless of whether the field is empty or not. 1108 // This may be used to include empty fields in Patch requests. 1109 ForceSendFields []string `json:"-"` 1110 1111 // NullFields is a list of field names (e.g. "Tag") to include in API 1112 // requests with the JSON null value. By default, fields with empty 1113 // values are omitted from API requests. However, any field with an 1114 // empty value appearing in NullFields will be sent to the server as 1115 // null. It is an error if a field in this list has a non-empty value. 1116 // This may be used to include null fields in Patch requests. 1117 NullFields []string `json:"-"` 1118} 1119 1120func (s *DeleteTenantProjectRequest) MarshalJSON() ([]byte, error) { 1121 type NoMethod DeleteTenantProjectRequest 1122 raw := NoMethod(*s) 1123 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1124} 1125 1126// Documentation: `Documentation` provides the information for 1127// describing a service. Example: documentation: summary: > The Google 1128// Calendar API gives access to most calendar features. pages: - name: 1129// Overview content: (== include google/foo/overview.md ==) - name: 1130// Tutorial content: (== include google/foo/tutorial.md ==) subpages; - 1131// name: Java content: (== include google/foo/tutorial_java.md ==) 1132// rules: - selector: google.calendar.Calendar.Get description: > ... - 1133// selector: google.calendar.Calendar.Put description: > ... 1134// Documentation is provided in markdown syntax. In addition to standard 1135// markdown features, definition lists, tables and fenced code blocks 1136// are supported. Section headers can be provided and are interpreted 1137// relative to the section nesting of the context where a documentation 1138// fragment is embedded. Documentation from the IDL is merged with 1139// documentation defined via the config at normalization time, where 1140// documentation provided by config rules overrides IDL provided. A 1141// number of constructs specific to the API platform are supported in 1142// documentation text. In order to reference a proto element, the 1143// following notation can be used: [fully.qualified.proto.name][] To 1144// override the display text used for the link, this can be used: 1145// [display text][fully.qualified.proto.name] Text can be excluded from 1146// doc using the following notation: (-- internal comment --) A few 1147// directives are available in documentation. Note that directives must 1148// appear on a single line to be properly identified. The `include` 1149// directive includes a markdown file from an external source: (== 1150// include path/to/file ==) The `resource_for` directive marks a message 1151// to be the resource of a collection in REST view. If it is not 1152// specified, tools attempt to infer the resource from the operations in 1153// a collection: (== resource_for v1.shelves.books ==) The directive 1154// `suppress_warning` does not directly affect documentation and is 1155// documented together with service config validation. 1156type Documentation struct { 1157 // DocumentationRootUrl: The URL to the root of documentation. 1158 DocumentationRootUrl string `json:"documentationRootUrl,omitempty"` 1159 1160 // Overview: Declares a single overview page. For example: 1161 // documentation: summary: ... overview: (== include overview.md ==) 1162 // This is a shortcut for the following declaration (using pages style): 1163 // documentation: summary: ... pages: - name: Overview content: (== 1164 // include overview.md ==) Note: you cannot specify both `overview` 1165 // field and `pages` field. 1166 Overview string `json:"overview,omitempty"` 1167 1168 // Pages: The top level pages for the documentation set. 1169 Pages []*Page `json:"pages,omitempty"` 1170 1171 // Rules: A list of documentation rules that apply to individual API 1172 // elements. **NOTE:** All service configuration rules follow "last one 1173 // wins" order. 1174 Rules []*DocumentationRule `json:"rules,omitempty"` 1175 1176 // ServiceRootUrl: Specifies the service root url if the default one 1177 // (the service name from the yaml file) is not suitable. This can be 1178 // seen in any fully specified service urls as well as sections that 1179 // show a base that other urls are relative to. 1180 ServiceRootUrl string `json:"serviceRootUrl,omitempty"` 1181 1182 // Summary: A short description of what the service does. The summary 1183 // must be plain text. It becomes the overview of the service displayed 1184 // in Google Cloud Console. NOTE: This field is equivalent to the 1185 // standard field `description`. 1186 Summary string `json:"summary,omitempty"` 1187 1188 // ForceSendFields is a list of field names (e.g. 1189 // "DocumentationRootUrl") to unconditionally include in API requests. 1190 // By default, fields with empty or default values are omitted from API 1191 // requests. However, any non-pointer, non-interface field appearing in 1192 // ForceSendFields will be sent to the server regardless of whether the 1193 // field is empty or not. This may be used to include empty fields in 1194 // Patch requests. 1195 ForceSendFields []string `json:"-"` 1196 1197 // NullFields is a list of field names (e.g. "DocumentationRootUrl") to 1198 // include in API requests with the JSON null value. By default, fields 1199 // with empty values are omitted from API requests. However, any field 1200 // with an empty value appearing in NullFields will be sent to the 1201 // server as null. It is an error if a field in this list has a 1202 // non-empty value. This may be used to include null fields in Patch 1203 // requests. 1204 NullFields []string `json:"-"` 1205} 1206 1207func (s *Documentation) MarshalJSON() ([]byte, error) { 1208 type NoMethod Documentation 1209 raw := NoMethod(*s) 1210 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1211} 1212 1213// DocumentationRule: A documentation rule provides information about 1214// individual API elements. 1215type DocumentationRule struct { 1216 // DeprecationDescription: Deprecation description of the selected 1217 // element(s). It can be provided if an element is marked as 1218 // `deprecated`. 1219 DeprecationDescription string `json:"deprecationDescription,omitempty"` 1220 1221 // Description: Description of the selected proto element (e.g. a 1222 // message, a method, a 'service' definition, or a field). Defaults to 1223 // leading & trailing comments taken from the proto source definition of 1224 // the proto element. 1225 Description string `json:"description,omitempty"` 1226 1227 // Selector: The selector is a comma-separated list of patterns for any 1228 // element such as a method, a field, an enum value. Each pattern is a 1229 // qualified name of the element which may end in "*", indicating a 1230 // wildcard. Wildcards are only allowed at the end and for a whole 1231 // component of the qualified name, i.e. "foo.*" is ok, but not "foo.b*" 1232 // or "foo.*.bar". A wildcard will match one or more components. To 1233 // specify a default for all applicable elements, the whole pattern "*" 1234 // is used. 1235 Selector string `json:"selector,omitempty"` 1236 1237 // ForceSendFields is a list of field names (e.g. 1238 // "DeprecationDescription") to unconditionally include in API requests. 1239 // By default, fields with empty or default values are omitted from API 1240 // requests. However, any non-pointer, non-interface field appearing in 1241 // ForceSendFields will be sent to the server regardless of whether the 1242 // field is empty or not. This may be used to include empty fields in 1243 // Patch requests. 1244 ForceSendFields []string `json:"-"` 1245 1246 // NullFields is a list of field names (e.g. "DeprecationDescription") 1247 // to include in API requests with the JSON null value. By default, 1248 // fields with empty values are omitted from API requests. However, any 1249 // field with an empty value appearing in NullFields will be sent to the 1250 // server as null. It is an error if a field in this list has a 1251 // non-empty value. This may be used to include null fields in Patch 1252 // requests. 1253 NullFields []string `json:"-"` 1254} 1255 1256func (s *DocumentationRule) MarshalJSON() ([]byte, error) { 1257 type NoMethod DocumentationRule 1258 raw := NoMethod(*s) 1259 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1260} 1261 1262// Empty: A generic empty message that you can re-use to avoid defining 1263// duplicated empty messages in your APIs. A typical example is to use 1264// it as the request or the response type of an API method. For 1265// instance: service Foo { rpc Bar(google.protobuf.Empty) returns 1266// (google.protobuf.Empty); } The JSON representation for `Empty` is 1267// empty JSON object `{}`. 1268type Empty struct { 1269 // ServerResponse contains the HTTP response code and headers from the 1270 // server. 1271 googleapi.ServerResponse `json:"-"` 1272} 1273 1274// Endpoint: `Endpoint` describes a network address of a service that 1275// serves a set of APIs. It is commonly known as a service endpoint. A 1276// service may expose any number of service endpoints, and all service 1277// endpoints share the same service definition, such as quota limits and 1278// monitoring metrics. Example: type: google.api.Service name: 1279// library-example.googleapis.com endpoints: # Declares network address 1280// `https://library-example.googleapis.com` # for service 1281// `library-example.googleapis.com`. The `https` scheme # is implicit 1282// for all service endpoints. Other schemes may be # supported in the 1283// future. - name: library-example.googleapis.com allow_cors: false - 1284// name: content-staging-library-example.googleapis.com # Allows HTTP 1285// OPTIONS calls to be passed to the API frontend, for it # to decide 1286// whether the subsequent cross-origin request is allowed # to proceed. 1287// allow_cors: true 1288type Endpoint struct { 1289 // AllowCors: Allowing CORS 1290 // (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka 1291 // cross-domain traffic, would allow the backends served from this 1292 // endpoint to receive and respond to HTTP OPTIONS requests. The 1293 // response will be used by the browser to determine whether the 1294 // subsequent cross-origin request is allowed to proceed. 1295 AllowCors bool `json:"allowCors,omitempty"` 1296 1297 // Name: The canonical name of this endpoint. 1298 Name string `json:"name,omitempty"` 1299 1300 // Target: The specification of an Internet routable address of API 1301 // frontend that will handle requests to this API Endpoint 1302 // (https://cloud.google.com/apis/design/glossary). It should be either 1303 // a valid IPv4 address or a fully-qualified domain name. For example, 1304 // "8.8.8.8" or "myservice.appspot.com". 1305 Target string `json:"target,omitempty"` 1306 1307 // ForceSendFields is a list of field names (e.g. "AllowCors") to 1308 // unconditionally include in API requests. By default, fields with 1309 // empty or default values are omitted from API requests. However, any 1310 // non-pointer, non-interface field appearing in ForceSendFields will be 1311 // sent to the server regardless of whether the field is empty or not. 1312 // This may be used to include empty fields in Patch requests. 1313 ForceSendFields []string `json:"-"` 1314 1315 // NullFields is a list of field names (e.g. "AllowCors") to include in 1316 // API requests with the JSON null value. By default, fields with empty 1317 // values are omitted from API requests. However, any field with an 1318 // empty value appearing in NullFields will be sent to the server as 1319 // null. It is an error if a field in this list has a non-empty value. 1320 // This may be used to include null fields in Patch requests. 1321 NullFields []string `json:"-"` 1322} 1323 1324func (s *Endpoint) MarshalJSON() ([]byte, error) { 1325 type NoMethod Endpoint 1326 raw := NoMethod(*s) 1327 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1328} 1329 1330// Enum: Enum type definition. 1331type Enum struct { 1332 // Enumvalue: Enum value definitions. 1333 Enumvalue []*EnumValue `json:"enumvalue,omitempty"` 1334 1335 // Name: Enum type name. 1336 Name string `json:"name,omitempty"` 1337 1338 // Options: Protocol buffer options. 1339 Options []*Option `json:"options,omitempty"` 1340 1341 // SourceContext: The source context. 1342 SourceContext *SourceContext `json:"sourceContext,omitempty"` 1343 1344 // Syntax: The source syntax. 1345 // 1346 // Possible values: 1347 // "SYNTAX_PROTO2" - Syntax `proto2`. 1348 // "SYNTAX_PROTO3" - Syntax `proto3`. 1349 Syntax string `json:"syntax,omitempty"` 1350 1351 // ForceSendFields is a list of field names (e.g. "Enumvalue") to 1352 // unconditionally include in API requests. By default, fields with 1353 // empty or default values are omitted from API requests. However, any 1354 // non-pointer, non-interface field appearing in ForceSendFields will be 1355 // sent to the server regardless of whether the field is empty or not. 1356 // This may be used to include empty fields in Patch requests. 1357 ForceSendFields []string `json:"-"` 1358 1359 // NullFields is a list of field names (e.g. "Enumvalue") to include in 1360 // API requests with the JSON null value. By default, fields with empty 1361 // values are omitted from API requests. However, any field with an 1362 // empty value appearing in NullFields will be sent to the server as 1363 // null. It is an error if a field in this list has a non-empty value. 1364 // This may be used to include null fields in Patch requests. 1365 NullFields []string `json:"-"` 1366} 1367 1368func (s *Enum) MarshalJSON() ([]byte, error) { 1369 type NoMethod Enum 1370 raw := NoMethod(*s) 1371 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1372} 1373 1374// EnumValue: Enum value definition. 1375type EnumValue struct { 1376 // Name: Enum value name. 1377 Name string `json:"name,omitempty"` 1378 1379 // Number: Enum value number. 1380 Number int64 `json:"number,omitempty"` 1381 1382 // Options: Protocol buffer options. 1383 Options []*Option `json:"options,omitempty"` 1384 1385 // ForceSendFields is a list of field names (e.g. "Name") to 1386 // unconditionally include in API requests. By default, fields with 1387 // empty or default values are omitted from API requests. However, any 1388 // non-pointer, non-interface field appearing in ForceSendFields will be 1389 // sent to the server regardless of whether the field is empty or not. 1390 // This may be used to include empty fields in Patch requests. 1391 ForceSendFields []string `json:"-"` 1392 1393 // NullFields is a list of field names (e.g. "Name") to include in API 1394 // requests with the JSON null value. By default, fields with empty 1395 // values are omitted from API requests. However, any field with an 1396 // empty value appearing in NullFields will be sent to the server as 1397 // null. It is an error if a field in this list has a non-empty value. 1398 // This may be used to include null fields in Patch requests. 1399 NullFields []string `json:"-"` 1400} 1401 1402func (s *EnumValue) MarshalJSON() ([]byte, error) { 1403 type NoMethod EnumValue 1404 raw := NoMethod(*s) 1405 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1406} 1407 1408// Field: A single field of a message type. 1409type Field struct { 1410 // Cardinality: The field cardinality. 1411 // 1412 // Possible values: 1413 // "CARDINALITY_UNKNOWN" - For fields with unknown cardinality. 1414 // "CARDINALITY_OPTIONAL" - For optional fields. 1415 // "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only. 1416 // "CARDINALITY_REPEATED" - For repeated fields. 1417 Cardinality string `json:"cardinality,omitempty"` 1418 1419 // DefaultValue: The string value of the default value of this field. 1420 // Proto2 syntax only. 1421 DefaultValue string `json:"defaultValue,omitempty"` 1422 1423 // JsonName: The field JSON name. 1424 JsonName string `json:"jsonName,omitempty"` 1425 1426 // Kind: The field type. 1427 // 1428 // Possible values: 1429 // "TYPE_UNKNOWN" - Field type unknown. 1430 // "TYPE_DOUBLE" - Field type double. 1431 // "TYPE_FLOAT" - Field type float. 1432 // "TYPE_INT64" - Field type int64. 1433 // "TYPE_UINT64" - Field type uint64. 1434 // "TYPE_INT32" - Field type int32. 1435 // "TYPE_FIXED64" - Field type fixed64. 1436 // "TYPE_FIXED32" - Field type fixed32. 1437 // "TYPE_BOOL" - Field type bool. 1438 // "TYPE_STRING" - Field type string. 1439 // "TYPE_GROUP" - Field type group. Proto2 syntax only, and 1440 // deprecated. 1441 // "TYPE_MESSAGE" - Field type message. 1442 // "TYPE_BYTES" - Field type bytes. 1443 // "TYPE_UINT32" - Field type uint32. 1444 // "TYPE_ENUM" - Field type enum. 1445 // "TYPE_SFIXED32" - Field type sfixed32. 1446 // "TYPE_SFIXED64" - Field type sfixed64. 1447 // "TYPE_SINT32" - Field type sint32. 1448 // "TYPE_SINT64" - Field type sint64. 1449 Kind string `json:"kind,omitempty"` 1450 1451 // Name: The field name. 1452 Name string `json:"name,omitempty"` 1453 1454 // Number: The field number. 1455 Number int64 `json:"number,omitempty"` 1456 1457 // OneofIndex: The index of the field type in `Type.oneofs`, for message 1458 // or enumeration types. The first type has index 1; zero means the type 1459 // is not in the list. 1460 OneofIndex int64 `json:"oneofIndex,omitempty"` 1461 1462 // Options: The protocol buffer options. 1463 Options []*Option `json:"options,omitempty"` 1464 1465 // Packed: Whether to use alternative packed wire representation. 1466 Packed bool `json:"packed,omitempty"` 1467 1468 // TypeUrl: The field type URL, without the scheme, for message or 1469 // enumeration types. Example: 1470 // "type.googleapis.com/google.protobuf.Timestamp". 1471 TypeUrl string `json:"typeUrl,omitempty"` 1472 1473 // ForceSendFields is a list of field names (e.g. "Cardinality") to 1474 // unconditionally include in API requests. By default, fields with 1475 // empty or default values are omitted from API requests. However, any 1476 // non-pointer, non-interface field appearing in ForceSendFields will be 1477 // sent to the server regardless of whether the field is empty or not. 1478 // This may be used to include empty fields in Patch requests. 1479 ForceSendFields []string `json:"-"` 1480 1481 // NullFields is a list of field names (e.g. "Cardinality") to include 1482 // in API requests with the JSON null value. By default, fields with 1483 // empty values are omitted from API requests. However, any field with 1484 // an empty value appearing in NullFields will be sent to the server as 1485 // null. It is an error if a field in this list has a non-empty value. 1486 // This may be used to include null fields in Patch requests. 1487 NullFields []string `json:"-"` 1488} 1489 1490func (s *Field) MarshalJSON() ([]byte, error) { 1491 type NoMethod Field 1492 raw := NoMethod(*s) 1493 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1494} 1495 1496// Http: Defines the HTTP configuration for an API service. It contains 1497// a list of HttpRule, each specifying the mapping of an RPC method to 1498// one or more HTTP REST API methods. 1499type Http struct { 1500 // FullyDecodeReservedExpansion: When set to true, URL path parameters 1501 // will be fully URI-decoded except in cases of single segment matches 1502 // in reserved expansion, where "%2F" will be left encoded. The default 1503 // behavior is to not decode RFC 6570 reserved characters in multi 1504 // segment matches. 1505 FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"` 1506 1507 // Rules: A list of HTTP configuration rules that apply to individual 1508 // API methods. **NOTE:** All service configuration rules follow "last 1509 // one wins" order. 1510 Rules []*HttpRule `json:"rules,omitempty"` 1511 1512 // ForceSendFields is a list of field names (e.g. 1513 // "FullyDecodeReservedExpansion") to unconditionally include in API 1514 // requests. By default, fields with empty or default values are omitted 1515 // from API requests. However, any non-pointer, non-interface field 1516 // appearing in ForceSendFields will be sent to the server regardless of 1517 // whether the field is empty or not. This may be used to include empty 1518 // fields in Patch requests. 1519 ForceSendFields []string `json:"-"` 1520 1521 // NullFields is a list of field names (e.g. 1522 // "FullyDecodeReservedExpansion") to include in API requests with the 1523 // JSON null value. By default, fields with empty values are omitted 1524 // from API requests. However, any field with an empty value appearing 1525 // in NullFields will be sent to the server as null. It is an error if a 1526 // field in this list has a non-empty value. This may be used to include 1527 // null fields in Patch requests. 1528 NullFields []string `json:"-"` 1529} 1530 1531func (s *Http) MarshalJSON() ([]byte, error) { 1532 type NoMethod Http 1533 raw := NoMethod(*s) 1534 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1535} 1536 1537// HttpRule: # gRPC Transcoding gRPC Transcoding is a feature for 1538// mapping between a gRPC method and one or more HTTP REST endpoints. It 1539// allows developers to build a single API service that supports both 1540// gRPC APIs and REST APIs. Many systems, including Google APIs 1541// (https://github.com/googleapis/googleapis), Cloud Endpoints 1542// (https://cloud.google.com/endpoints), gRPC Gateway 1543// (https://github.com/grpc-ecosystem/grpc-gateway), and Envoy 1544// (https://github.com/envoyproxy/envoy) proxy support this feature and 1545// use it for large scale production services. `HttpRule` defines the 1546// schema of the gRPC/REST mapping. The mapping specifies how different 1547// portions of the gRPC request message are mapped to the URL path, URL 1548// query parameters, and HTTP request body. It also controls how the 1549// gRPC response message is mapped to the HTTP response body. `HttpRule` 1550// is typically specified as an `google.api.http` annotation on the gRPC 1551// method. Each mapping specifies a URL path template and an HTTP 1552// method. The path template may refer to one or more fields in the gRPC 1553// request message, as long as each field is a non-repeated field with a 1554// primitive (non-message) type. The path template controls how fields 1555// of the request message are mapped to the URL path. Example: service 1556// Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { 1557// option (google.api.http) = { get: "/v1/{name=messages/*}" }; } } 1558// message GetMessageRequest { string name = 1; // Mapped to URL path. } 1559// message Message { string text = 1; // The resource content. } This 1560// enables an HTTP REST to gRPC mapping as below: HTTP | gRPC 1561// -----|----- `GET /v1/messages/123456` | `GetMessage(name: 1562// "messages/123456")` Any fields in the request message which are not 1563// bound by the path template automatically become HTTP query parameters 1564// if there is no HTTP request body. For example: service Messaging { 1565// rpc GetMessage(GetMessageRequest) returns (Message) { option 1566// (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message 1567// GetMessageRequest { message SubMessage { string subfield = 1; } 1568// string message_id = 1; // Mapped to URL path. int64 revision = 2; // 1569// Mapped to URL query parameter `revision`. SubMessage sub = 3; // 1570// Mapped to URL query parameter `sub.subfield`. } This enables a HTTP 1571// JSON to RPC mapping as below: HTTP | gRPC -----|----- `GET 1572// /v1/messages/123456?revision=2&sub.subfield=foo` | 1573// `GetMessage(message_id: "123456" revision: 2 sub: 1574// SubMessage(subfield: "foo"))` Note that fields which are mapped to 1575// URL query parameters must have a primitive type or a repeated 1576// primitive type or a non-repeated message type. In the case of a 1577// repeated type, the parameter can be repeated in the URL as 1578// `...?param=A¶m=B`. In the case of a message type, each field of 1579// the message is mapped to a separate parameter, such as 1580// `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request 1581// body, the `body` field specifies the mapping. Consider a REST update 1582// method on the message resource collection: service Messaging { rpc 1583// UpdateMessage(UpdateMessageRequest) returns (Message) { option 1584// (google.api.http) = { patch: "/v1/messages/{message_id}" body: 1585// "message" }; } } message UpdateMessageRequest { string message_id = 1586// 1; // mapped to the URL Message message = 2; // mapped to the body } 1587// The following HTTP JSON to RPC mapping is enabled, where the 1588// representation of the JSON in the request body is determined by 1589// protos JSON encoding: HTTP | gRPC -----|----- `PATCH 1590// /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: 1591// "123456" message { text: "Hi!" })` The special name `*` can be used 1592// in the body mapping to define that every field not bound by the path 1593// template should be mapped to the request body. This enables the 1594// following alternative definition of the update method: service 1595// Messaging { rpc UpdateMessage(Message) returns (Message) { option 1596// (google.api.http) = { patch: "/v1/messages/{message_id}" body: "*" }; 1597// } } message Message { string message_id = 1; string text = 2; } The 1598// following HTTP JSON to RPC mapping is enabled: HTTP | gRPC 1599// -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" }` | 1600// `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when 1601// using `*` in the body mapping, it is not possible to have HTTP 1602// parameters, as all fields not bound by the path end in the body. This 1603// makes this option more rarely used in practice when defining REST 1604// APIs. The common usage of `*` is in custom methods which don't use 1605// the URL at all for transferring data. It is possible to define 1606// multiple HTTP methods for one RPC by using the `additional_bindings` 1607// option. Example: service Messaging { rpc 1608// GetMessage(GetMessageRequest) returns (Message) { option 1609// (google.api.http) = { get: "/v1/messages/{message_id}" 1610// additional_bindings { get: 1611// "/v1/users/{user_id}/messages/{message_id}" } }; } } message 1612// GetMessageRequest { string message_id = 1; string user_id = 2; } This 1613// enables the following two alternative HTTP JSON to RPC mappings: HTTP 1614// | gRPC -----|----- `GET /v1/messages/123456` | 1615// `GetMessage(message_id: "123456")` `GET /v1/users/me/messages/123456` 1616// | `GetMessage(user_id: "me" message_id: "123456")` ## Rules for HTTP 1617// mapping 1. Leaf request fields (recursive expansion nested messages 1618// in the request message) are classified into three categories: - 1619// Fields referred by the path template. They are passed via the URL 1620// path. - Fields referred by the HttpRule.body. They are passed via the 1621// HTTP request body. - All other fields are passed via the URL query 1622// parameters, and the parameter name is the field path in the request 1623// message. A repeated field can be represented as multiple query 1624// parameters under the same name. 2. If HttpRule.body is "*", there is 1625// no URL query parameter, all fields are passed via URL path and HTTP 1626// request body. 3. If HttpRule.body is omitted, there is no HTTP 1627// request body, all fields are passed via URL path and URL query 1628// parameters. ### Path template syntax Template = "/" Segments [ Verb ] 1629// ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL 1630// | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; 1631// FieldPath = IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` 1632// matches a single URL path segment. The syntax `**` matches zero or 1633// more URL path segments, which must be the last part of the URL path 1634// except the `Verb`. The syntax `Variable` matches part of the URL path 1635// as specified by its template. A variable template must not contain 1636// other variables. If a variable matches a single path segment, its 1637// template may be omitted, e.g. `{var}` is equivalent to `{var=*}`. The 1638// syntax `LITERAL` matches literal text in the URL path. If the 1639// `LITERAL` contains any reserved character, such characters should be 1640// percent-encoded before the matching. If a variable contains exactly 1641// one path segment, such as "{var}" or "{var=*}", when such a 1642// variable is expanded into a URL path on the client side, all 1643// characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The server 1644// side does the reverse decoding. Such variables show up in the 1645// Discovery Document 1646// (https://developers.google.com/discovery/v1/reference/apis) as 1647// `{var}`. If a variable contains multiple path segments, such as 1648// "{var=foo/*}" or "{var=**}", when such a variable is expanded 1649// into a URL path on the client side, all characters except 1650// `[-_.~/0-9a-zA-Z]` are percent-encoded. The server side does the 1651// reverse decoding, except "%2F" and "%2f" are left unchanged. Such 1652// variables show up in the Discovery Document 1653// (https://developers.google.com/discovery/v1/reference/apis) as 1654// `{+var}`. ## Using gRPC API Service Configuration gRPC API Service 1655// Configuration (service config) is a configuration language for 1656// configuring a gRPC service to become a user-facing product. The 1657// service config is simply the YAML representation of the 1658// `google.api.Service` proto message. As an alternative to annotating 1659// your proto file, you can configure gRPC transcoding in your service 1660// config YAML files. You do this by specifying a `HttpRule` that maps 1661// the gRPC method to a REST endpoint, achieving the same effect as the 1662// proto annotation. This can be particularly useful if you have a proto 1663// that is reused in multiple services. Note that any transcoding 1664// specified in the service config will override any matching 1665// transcoding configuration in the proto. Example: http: rules: # 1666// Selects a gRPC method and applies HttpRule to it. - selector: 1667// example.v1.Messaging.GetMessage get: 1668// /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC 1669// Transcoding is used to map a gRPC to JSON REST endpoints, the proto 1670// to JSON conversion must follow the proto3 specification 1671// (https://developers.google.com/protocol-buffers/docs/proto3#json). 1672// While the single segment variable follows the semantics of RFC 6570 1673// (https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String 1674// Expansion, the multi segment variable **does not** follow RFC 6570 1675// Section 3.2.3 Reserved Expansion. The reason is that the Reserved 1676// Expansion does not expand special characters like `?` and `#`, which 1677// would lead to invalid URLs. As the result, gRPC Transcoding uses a 1678// custom encoding for multi segment variables. The path variables 1679// **must not** refer to any repeated or mapped field, because client 1680// libraries are not capable of handling such variable expansion. The 1681// path variables **must not** capture the leading "/" character. The 1682// reason is that the most common use case "{var}" does not capture the 1683// leading "/" character. For consistency, all path variables must share 1684// the same behavior. Repeated message fields must not be mapped to URL 1685// query parameters, because no client library can support such 1686// complicated mapping. If an API needs to use a JSON array for request 1687// or response body, it can map the request or response body to a 1688// repeated field. However, some gRPC Transcoding implementations may 1689// not support this feature. 1690type HttpRule struct { 1691 // AdditionalBindings: Additional HTTP bindings for the selector. Nested 1692 // bindings must not contain an `additional_bindings` field themselves 1693 // (that is, the nesting may only be one level deep). 1694 AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"` 1695 1696 // Body: The name of the request field whose value is mapped to the HTTP 1697 // request body, or `*` for mapping all request fields not captured by 1698 // the path pattern to the HTTP body, or omitted for not having any HTTP 1699 // request body. NOTE: the referred field must be present at the 1700 // top-level of the request message type. 1701 Body string `json:"body,omitempty"` 1702 1703 // Custom: The custom pattern is used for specifying an HTTP method that 1704 // is not included in the `pattern` field, such as HEAD, or "*" to leave 1705 // the HTTP method unspecified for this rule. The wild-card rule is 1706 // useful for services that provide content to Web (HTML) clients. 1707 Custom *CustomHttpPattern `json:"custom,omitempty"` 1708 1709 // Delete: Maps to HTTP DELETE. Used for deleting a resource. 1710 Delete string `json:"delete,omitempty"` 1711 1712 // Get: Maps to HTTP GET. Used for listing and getting information about 1713 // resources. 1714 Get string `json:"get,omitempty"` 1715 1716 // Patch: Maps to HTTP PATCH. Used for updating a resource. 1717 Patch string `json:"patch,omitempty"` 1718 1719 // Post: Maps to HTTP POST. Used for creating a resource or performing 1720 // an action. 1721 Post string `json:"post,omitempty"` 1722 1723 // Put: Maps to HTTP PUT. Used for replacing a resource. 1724 Put string `json:"put,omitempty"` 1725 1726 // ResponseBody: Optional. The name of the response field whose value is 1727 // mapped to the HTTP response body. When omitted, the entire response 1728 // message will be used as the HTTP response body. NOTE: The referred 1729 // field must be present at the top-level of the response message type. 1730 ResponseBody string `json:"responseBody,omitempty"` 1731 1732 // Selector: Selects a method to which this rule applies. Refer to 1733 // selector for syntax details. 1734 Selector string `json:"selector,omitempty"` 1735 1736 // ForceSendFields is a list of field names (e.g. "AdditionalBindings") 1737 // to unconditionally include in API requests. By default, fields with 1738 // empty or default values are omitted from API requests. However, any 1739 // non-pointer, non-interface field appearing in ForceSendFields will be 1740 // sent to the server regardless of whether the field is empty or not. 1741 // This may be used to include empty fields in Patch requests. 1742 ForceSendFields []string `json:"-"` 1743 1744 // NullFields is a list of field names (e.g. "AdditionalBindings") to 1745 // include in API requests with the JSON null value. By default, fields 1746 // with empty values are omitted from API requests. However, any field 1747 // with an empty value appearing in NullFields will be sent to the 1748 // server as null. It is an error if a field in this list has a 1749 // non-empty value. This may be used to include null fields in Patch 1750 // requests. 1751 NullFields []string `json:"-"` 1752} 1753 1754func (s *HttpRule) MarshalJSON() ([]byte, error) { 1755 type NoMethod HttpRule 1756 raw := NoMethod(*s) 1757 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1758} 1759 1760// JwtLocation: Specifies a location to extract JWT from an API request. 1761type JwtLocation struct { 1762 // Header: Specifies HTTP header name to extract JWT token. 1763 Header string `json:"header,omitempty"` 1764 1765 // Query: Specifies URL query parameter name to extract JWT token. 1766 Query string `json:"query,omitempty"` 1767 1768 // ValuePrefix: The value prefix. The value format is 1769 // "value_prefix{token}" Only applies to "in" header type. Must be empty 1770 // for "in" query type. If not empty, the header value has to match 1771 // (case sensitive) this prefix. If not matched, JWT will not be 1772 // extracted. If matched, JWT will be extracted after the prefix is 1773 // removed. For example, for "Authorization: Bearer {JWT}", 1774 // value_prefix="Bearer " with a space at the end. 1775 ValuePrefix string `json:"valuePrefix,omitempty"` 1776 1777 // ForceSendFields is a list of field names (e.g. "Header") to 1778 // unconditionally include in API requests. By default, fields with 1779 // empty or default values are omitted from API requests. However, any 1780 // non-pointer, non-interface field appearing in ForceSendFields will be 1781 // sent to the server regardless of whether the field is empty or not. 1782 // This may be used to include empty fields in Patch requests. 1783 ForceSendFields []string `json:"-"` 1784 1785 // NullFields is a list of field names (e.g. "Header") to include in API 1786 // requests with the JSON null value. By default, fields with empty 1787 // values are omitted from API requests. However, any field with an 1788 // empty value appearing in NullFields will be sent to the server as 1789 // null. It is an error if a field in this list has a non-empty value. 1790 // This may be used to include null fields in Patch requests. 1791 NullFields []string `json:"-"` 1792} 1793 1794func (s *JwtLocation) MarshalJSON() ([]byte, error) { 1795 type NoMethod JwtLocation 1796 raw := NoMethod(*s) 1797 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1798} 1799 1800// LabelDescriptor: A description of a label. 1801type LabelDescriptor struct { 1802 // Description: A human-readable description for the label. 1803 Description string `json:"description,omitempty"` 1804 1805 // Key: The label key. 1806 Key string `json:"key,omitempty"` 1807 1808 // ValueType: The type of data that can be assigned to the label. 1809 // 1810 // Possible values: 1811 // "STRING" - A variable-length string. This is the default. 1812 // "BOOL" - Boolean; true or false. 1813 // "INT64" - A 64-bit signed integer. 1814 ValueType string `json:"valueType,omitempty"` 1815 1816 // ForceSendFields is a list of field names (e.g. "Description") to 1817 // unconditionally include in API requests. By default, fields with 1818 // empty or default values are omitted from API requests. However, any 1819 // non-pointer, non-interface field appearing in ForceSendFields will be 1820 // sent to the server regardless of whether the field is empty or not. 1821 // This may be used to include empty fields in Patch requests. 1822 ForceSendFields []string `json:"-"` 1823 1824 // NullFields is a list of field names (e.g. "Description") to include 1825 // in API requests with the JSON null value. By default, fields with 1826 // empty values are omitted from API requests. However, any field with 1827 // an empty value appearing in NullFields will be sent to the server as 1828 // null. It is an error if a field in this list has a non-empty value. 1829 // This may be used to include null fields in Patch requests. 1830 NullFields []string `json:"-"` 1831} 1832 1833func (s *LabelDescriptor) MarshalJSON() ([]byte, error) { 1834 type NoMethod LabelDescriptor 1835 raw := NoMethod(*s) 1836 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1837} 1838 1839// ListOperationsResponse: The response message for 1840// Operations.ListOperations. 1841type ListOperationsResponse struct { 1842 // NextPageToken: The standard List next-page token. 1843 NextPageToken string `json:"nextPageToken,omitempty"` 1844 1845 // Operations: A list of operations that matches the specified filter in 1846 // the request. 1847 Operations []*Operation `json:"operations,omitempty"` 1848 1849 // ServerResponse contains the HTTP response code and headers from the 1850 // server. 1851 googleapi.ServerResponse `json:"-"` 1852 1853 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 1854 // unconditionally include in API requests. By default, fields with 1855 // empty or default values are omitted from API requests. However, any 1856 // non-pointer, non-interface field appearing in ForceSendFields will be 1857 // sent to the server regardless of whether the field is empty or not. 1858 // This may be used to include empty fields in Patch requests. 1859 ForceSendFields []string `json:"-"` 1860 1861 // NullFields is a list of field names (e.g. "NextPageToken") to include 1862 // in API requests with the JSON null value. By default, fields with 1863 // empty values are omitted from API requests. However, any field with 1864 // an empty value appearing in NullFields will be sent to the server as 1865 // null. It is an error if a field in this list has a non-empty value. 1866 // This may be used to include null fields in Patch requests. 1867 NullFields []string `json:"-"` 1868} 1869 1870func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) { 1871 type NoMethod ListOperationsResponse 1872 raw := NoMethod(*s) 1873 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1874} 1875 1876// ListTenancyUnitsResponse: Response for the list request. 1877type ListTenancyUnitsResponse struct { 1878 // NextPageToken: Pagination token for large results. 1879 NextPageToken string `json:"nextPageToken,omitempty"` 1880 1881 // TenancyUnits: Tenancy units matching the request. 1882 TenancyUnits []*TenancyUnit `json:"tenancyUnits,omitempty"` 1883 1884 // ServerResponse contains the HTTP response code and headers from the 1885 // server. 1886 googleapi.ServerResponse `json:"-"` 1887 1888 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 1889 // unconditionally include in API requests. By default, fields with 1890 // empty or default values are omitted from API requests. However, any 1891 // non-pointer, non-interface field appearing in ForceSendFields will be 1892 // sent to the server regardless of whether the field is empty or not. 1893 // This may be used to include empty fields in Patch requests. 1894 ForceSendFields []string `json:"-"` 1895 1896 // NullFields is a list of field names (e.g. "NextPageToken") to include 1897 // in API requests with the JSON null value. By default, fields with 1898 // empty values are omitted from API requests. However, any field with 1899 // an empty value appearing in NullFields will be sent to the server as 1900 // null. It is an error if a field in this list has a non-empty value. 1901 // This may be used to include null fields in Patch requests. 1902 NullFields []string `json:"-"` 1903} 1904 1905func (s *ListTenancyUnitsResponse) MarshalJSON() ([]byte, error) { 1906 type NoMethod ListTenancyUnitsResponse 1907 raw := NoMethod(*s) 1908 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1909} 1910 1911// LogDescriptor: A description of a log type. Example in YAML format: - 1912// name: library.googleapis.com/activity_history description: The 1913// history of borrowing and returning library items. display_name: 1914// Activity labels: - key: /customer_id description: Identifier of a 1915// library customer 1916type LogDescriptor struct { 1917 // Description: A human-readable description of this log. This 1918 // information appears in the documentation and can contain details. 1919 Description string `json:"description,omitempty"` 1920 1921 // DisplayName: The human-readable name for this log. This information 1922 // appears on the user interface and should be concise. 1923 DisplayName string `json:"displayName,omitempty"` 1924 1925 // Labels: The set of labels that are available to describe a specific 1926 // log entry. Runtime requests that contain labels not specified here 1927 // are considered invalid. 1928 Labels []*LabelDescriptor `json:"labels,omitempty"` 1929 1930 // Name: The name of the log. It must be less than 512 characters long 1931 // and can include the following characters: upper- and lower-case 1932 // alphanumeric characters [A-Za-z0-9], and punctuation characters 1933 // including slash, underscore, hyphen, period [/_-.]. 1934 Name string `json:"name,omitempty"` 1935 1936 // ForceSendFields is a list of field names (e.g. "Description") to 1937 // unconditionally include in API requests. By default, fields with 1938 // empty or default values are omitted from API requests. However, any 1939 // non-pointer, non-interface field appearing in ForceSendFields will be 1940 // sent to the server regardless of whether the field is empty or not. 1941 // This may be used to include empty fields in Patch requests. 1942 ForceSendFields []string `json:"-"` 1943 1944 // NullFields is a list of field names (e.g. "Description") to include 1945 // in API requests with the JSON null value. By default, fields with 1946 // empty values are omitted from API requests. However, any field with 1947 // an empty value appearing in NullFields will be sent to the server as 1948 // null. It is an error if a field in this list has a non-empty value. 1949 // This may be used to include null fields in Patch requests. 1950 NullFields []string `json:"-"` 1951} 1952 1953func (s *LogDescriptor) MarshalJSON() ([]byte, error) { 1954 type NoMethod LogDescriptor 1955 raw := NoMethod(*s) 1956 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1957} 1958 1959// Logging: Logging configuration of the service. The following example 1960// shows how to configure logs to be sent to the producer and consumer 1961// projects. In the example, the `activity_history` log is sent to both 1962// the producer and consumer projects, whereas the `purchase_history` 1963// log is only sent to the producer project. monitored_resources: - 1964// type: library.googleapis.com/branch labels: - key: /city description: 1965// The city where the library branch is located in. - key: /name 1966// description: The name of the branch. logs: - name: activity_history 1967// labels: - key: /customer_id - name: purchase_history logging: 1968// producer_destinations: - monitored_resource: 1969// library.googleapis.com/branch logs: - activity_history - 1970// purchase_history consumer_destinations: - monitored_resource: 1971// library.googleapis.com/branch logs: - activity_history 1972type Logging struct { 1973 // ConsumerDestinations: Logging configurations for sending logs to the 1974 // consumer project. There can be multiple consumer destinations, each 1975 // one must have a different monitored resource type. A log can be used 1976 // in at most one consumer destination. 1977 ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"` 1978 1979 // ProducerDestinations: Logging configurations for sending logs to the 1980 // producer project. There can be multiple producer destinations, each 1981 // one must have a different monitored resource type. A log can be used 1982 // in at most one producer destination. 1983 ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"` 1984 1985 // ForceSendFields is a list of field names (e.g. 1986 // "ConsumerDestinations") to unconditionally include in API requests. 1987 // By default, fields with empty or default values are omitted from API 1988 // requests. However, any non-pointer, non-interface field appearing in 1989 // ForceSendFields will be sent to the server regardless of whether the 1990 // field is empty or not. This may be used to include empty fields in 1991 // Patch requests. 1992 ForceSendFields []string `json:"-"` 1993 1994 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 1995 // include in API requests with the JSON null value. By default, fields 1996 // with empty values are omitted from API requests. However, any field 1997 // with an empty value appearing in NullFields will be sent to the 1998 // server as null. It is an error if a field in this list has a 1999 // non-empty value. This may be used to include null fields in Patch 2000 // requests. 2001 NullFields []string `json:"-"` 2002} 2003 2004func (s *Logging) MarshalJSON() ([]byte, error) { 2005 type NoMethod Logging 2006 raw := NoMethod(*s) 2007 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2008} 2009 2010// LoggingDestination: Configuration of a specific logging destination 2011// (the producer project or the consumer project). 2012type LoggingDestination struct { 2013 // Logs: Names of the logs to be sent to this destination. Each name 2014 // must be defined in the Service.logs section. If the log name is not a 2015 // domain scoped name, it will be automatically prefixed with the 2016 // service name followed by "/". 2017 Logs []string `json:"logs,omitempty"` 2018 2019 // MonitoredResource: The monitored resource type. The type must be 2020 // defined in the Service.monitored_resources section. 2021 MonitoredResource string `json:"monitoredResource,omitempty"` 2022 2023 // ForceSendFields is a list of field names (e.g. "Logs") to 2024 // unconditionally include in API requests. By default, fields with 2025 // empty or default values are omitted from API requests. However, any 2026 // non-pointer, non-interface field appearing in ForceSendFields will be 2027 // sent to the server regardless of whether the field is empty or not. 2028 // This may be used to include empty fields in Patch requests. 2029 ForceSendFields []string `json:"-"` 2030 2031 // NullFields is a list of field names (e.g. "Logs") to include in API 2032 // requests with the JSON null value. By default, fields with empty 2033 // values are omitted from API requests. However, any field with an 2034 // empty value appearing in NullFields will be sent to the server as 2035 // null. It is an error if a field in this list has a non-empty value. 2036 // This may be used to include null fields in Patch requests. 2037 NullFields []string `json:"-"` 2038} 2039 2040func (s *LoggingDestination) MarshalJSON() ([]byte, error) { 2041 type NoMethod LoggingDestination 2042 raw := NoMethod(*s) 2043 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2044} 2045 2046// Method: Method represents a method of an API interface. 2047type Method struct { 2048 // Name: The simple name of this method. 2049 Name string `json:"name,omitempty"` 2050 2051 // Options: Any metadata attached to the method. 2052 Options []*Option `json:"options,omitempty"` 2053 2054 // RequestStreaming: If true, the request is streamed. 2055 RequestStreaming bool `json:"requestStreaming,omitempty"` 2056 2057 // RequestTypeUrl: A URL of the input message type. 2058 RequestTypeUrl string `json:"requestTypeUrl,omitempty"` 2059 2060 // ResponseStreaming: If true, the response is streamed. 2061 ResponseStreaming bool `json:"responseStreaming,omitempty"` 2062 2063 // ResponseTypeUrl: The URL of the output message type. 2064 ResponseTypeUrl string `json:"responseTypeUrl,omitempty"` 2065 2066 // Syntax: The source syntax of this method. 2067 // 2068 // Possible values: 2069 // "SYNTAX_PROTO2" - Syntax `proto2`. 2070 // "SYNTAX_PROTO3" - Syntax `proto3`. 2071 Syntax string `json:"syntax,omitempty"` 2072 2073 // ForceSendFields is a list of field names (e.g. "Name") to 2074 // unconditionally include in API requests. By default, fields with 2075 // empty or default values are omitted from API requests. However, any 2076 // non-pointer, non-interface field appearing in ForceSendFields will be 2077 // sent to the server regardless of whether the field is empty or not. 2078 // This may be used to include empty fields in Patch requests. 2079 ForceSendFields []string `json:"-"` 2080 2081 // NullFields is a list of field names (e.g. "Name") to include in API 2082 // requests with the JSON null value. By default, fields with empty 2083 // values are omitted from API requests. However, any field with an 2084 // empty value appearing in NullFields will be sent to the server as 2085 // null. It is an error if a field in this list has a non-empty value. 2086 // This may be used to include null fields in Patch requests. 2087 NullFields []string `json:"-"` 2088} 2089 2090func (s *Method) MarshalJSON() ([]byte, error) { 2091 type NoMethod Method 2092 raw := NoMethod(*s) 2093 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2094} 2095 2096// MetricDescriptor: Defines a metric type and its schema. Once a metric 2097// descriptor is created, deleting or altering it stops data collection 2098// and makes the metric type's existing data unusable. 2099type MetricDescriptor struct { 2100 // Description: A detailed description of the metric, which can be used 2101 // in documentation. 2102 Description string `json:"description,omitempty"` 2103 2104 // DisplayName: A concise name for the metric, which can be displayed in 2105 // user interfaces. Use sentence case without an ending period, for 2106 // example "Request count". This field is optional but it is recommended 2107 // to be set for any metrics associated with user-visible concepts, such 2108 // as Quota. 2109 DisplayName string `json:"displayName,omitempty"` 2110 2111 // Labels: The set of labels that can be used to describe a specific 2112 // instance of this metric type. For example, the 2113 // `appengine.googleapis.com/http/server/response_latencies` metric type 2114 // has a label for the HTTP response code, `response_code`, so you can 2115 // look at latencies for successful responses or just for responses that 2116 // failed. 2117 Labels []*LabelDescriptor `json:"labels,omitempty"` 2118 2119 // LaunchStage: Optional. The launch stage of the metric definition. 2120 // 2121 // Possible values: 2122 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2123 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2124 // use it. 2125 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2126 // visible internally. 2127 // "EARLY_ACCESS" - Early Access features are limited to a closed 2128 // group of testers. To use these features, you must sign up in advance 2129 // and sign a Trusted Tester agreement (which includes confidentiality 2130 // provisions). These features may be unstable, changed in 2131 // backward-incompatible ways, and are not guaranteed to be released. 2132 // "ALPHA" - Alpha is a limited availability test for releases before 2133 // they are cleared for widespread use. By Alpha, all significant design 2134 // issues are resolved and we are in the process of verifying 2135 // functionality. Alpha customers need to apply for access, agree to 2136 // applicable terms, and have their projects allowlisted. Alpha releases 2137 // don’t have to be feature complete, no SLAs are provided, and there 2138 // are no technical support obligations, but they will be far enough 2139 // along that customers can actually use them in test environments or 2140 // for limited-use tests -- just like they would in normal production 2141 // cases. 2142 // "BETA" - Beta is the point at which we are ready to open a release 2143 // for any customer to use. There are no SLA or technical support 2144 // obligations in a Beta release. Products will be complete from a 2145 // feature perspective, but may have some open outstanding issues. Beta 2146 // releases are suitable for limited production use cases. 2147 // "GA" - GA features are open to all developers and are considered 2148 // stable and fully qualified for production use. 2149 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2150 // and removed. For more information, see the “Deprecation Policy” 2151 // section of our [Terms of Service](https://cloud.google.com/terms/) 2152 // and the [Google Cloud Platform Subject to the Deprecation 2153 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2154 LaunchStage string `json:"launchStage,omitempty"` 2155 2156 // Metadata: Optional. Metadata which can be used to guide usage of the 2157 // metric. 2158 Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"` 2159 2160 // MetricKind: Whether the metric records instantaneous values, changes 2161 // to a value, etc. Some combinations of `metric_kind` and `value_type` 2162 // might not be supported. 2163 // 2164 // Possible values: 2165 // "METRIC_KIND_UNSPECIFIED" - Do not use this default value. 2166 // "GAUGE" - An instantaneous measurement of a value. 2167 // "DELTA" - The change in a value during a time interval. 2168 // "CUMULATIVE" - A value accumulated over a time interval. Cumulative 2169 // measurements in a time series should have the same start time and 2170 // increasing end times, until an event resets the cumulative value to 2171 // zero and sets a new start time for the following points. 2172 MetricKind string `json:"metricKind,omitempty"` 2173 2174 // MonitoredResourceTypes: Read-only. If present, then a time series, 2175 // which is identified partially by a metric type and a 2176 // MonitoredResourceDescriptor, that is associated with this metric type 2177 // can only be associated with one of the monitored resource types 2178 // listed here. 2179 MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"` 2180 2181 // Name: The resource name of the metric descriptor. 2182 Name string `json:"name,omitempty"` 2183 2184 // Type: The metric type, including its DNS name prefix. The type is not 2185 // URL-encoded. All user-defined metric types have the DNS name 2186 // `custom.googleapis.com` or `external.googleapis.com`. Metric types 2187 // should use a natural hierarchical grouping. For example: 2188 // "custom.googleapis.com/invoice/paid/amount" 2189 // "external.googleapis.com/prometheus/up" 2190 // "appengine.googleapis.com/http/server/response_latencies" 2191 Type string `json:"type,omitempty"` 2192 2193 // Unit: The units in which the metric value is reported. It is only 2194 // applicable if the `value_type` is `INT64`, `DOUBLE`, or 2195 // `DISTRIBUTION`. The `unit` defines the representation of the stored 2196 // metric values. Different systems might scale the values to be more 2197 // easily displayed (so a value of `0.02kBy` _might_ be displayed as 2198 // `20By`, and a value of `3523kBy` _might_ be displayed as `3.5MBy`). 2199 // However, if the `unit` is `kBy`, then the value of the metric is 2200 // always in thousands of bytes, no matter how it might be displayed. If 2201 // you want a custom metric to record the exact number of CPU-seconds 2202 // used by a job, you can create an `INT64 CUMULATIVE` metric whose 2203 // `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the 2204 // job uses 12,005 CPU-seconds, then the value is written as `12005`. 2205 // Alternatively, if you want a custom metric to record data in a more 2206 // granular way, you can create a `DOUBLE CUMULATIVE` metric whose 2207 // `unit` is `ks{CPU}`, and then write the value `12.005` (which is 2208 // `12005/1000`), or use `Kis{CPU}` and write `11.723` (which is 2209 // `12005/1024`). The supported units are a subset of The Unified Code 2210 // for Units of Measure (https://unitsofmeasure.org/ucum.html) standard: 2211 // **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * `min` 2212 // minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** 2213 // * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera 2214 // (10^12) * `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * 2215 // `Y` yotta (10^24) * `m` milli (10^-3) * `u` micro (10^-6) * `n` nano 2216 // (10^-9) * `p` pico (10^-12) * `f` femto (10^-15) * `a` atto (10^-18) 2217 // * `z` zepto (10^-21) * `y` yocto (10^-24) * `Ki` kibi (2^10) * `Mi` 2218 // mebi (2^20) * `Gi` gibi (2^30) * `Ti` tebi (2^40) * `Pi` pebi (2^50) 2219 // **Grammar** The grammar also includes these connectors: * `/` 2220 // division or ratio (as an infix operator). For examples, `kBy/{email}` 2221 // or `MiBy/10ms` (although you should almost never have `/s` in a 2222 // metric `unit`; rates should always be computed at query time from the 2223 // underlying cumulative or delta value). * `.` multiplication or 2224 // composition (as an infix operator). For examples, `GBy.d` or 2225 // `k{watt}.h`. The grammar for a unit is as follows: Expression = 2226 // Component { "." Component } { "/" Component } ; Component = ( [ 2227 // PREFIX ] UNIT | "%" ) [ Annotation ] | Annotation | "1" ; Annotation 2228 // = "{" NAME "}" ; Notes: * `Annotation` is just a comment if it 2229 // follows a `UNIT`. If the annotation is used alone, then the unit is 2230 // equivalent to `1`. For examples, `{request}/s == 1/s`, 2231 // `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank 2232 // printable ASCII characters not containing `{` or `}`. * `1` 2233 // represents a unitary dimensionless unit 2234 // (https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such as 2235 // in `1/s`. It is typically used when none of the basic units are 2236 // appropriate. For example, "new users per day" can be represented as 2237 // `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new 2238 // users). Alternatively, "thousands of page views per day" would be 2239 // represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric 2240 // value of `5.3` would mean "5300 page views per day"). * `%` 2241 // represents dimensionless value of 1/100, and annotates values giving 2242 // a percentage (so the metric values are typically in the range of 2243 // 0..100, and a metric value `3` means "3 percent"). * `10^2.%` 2244 // indicates a metric contains a ratio, typically in the range 0..1, 2245 // that will be multiplied by 100 and displayed as a percentage (so a 2246 // metric value `0.03` means "3 percent"). 2247 Unit string `json:"unit,omitempty"` 2248 2249 // ValueType: Whether the measurement is an integer, a floating-point 2250 // number, etc. Some combinations of `metric_kind` and `value_type` 2251 // might not be supported. 2252 // 2253 // Possible values: 2254 // "VALUE_TYPE_UNSPECIFIED" - Do not use this default value. 2255 // "BOOL" - The value is a boolean. This value type can be used only 2256 // if the metric kind is `GAUGE`. 2257 // "INT64" - The value is a signed 64-bit integer. 2258 // "DOUBLE" - The value is a double precision floating point number. 2259 // "STRING" - The value is a text string. This value type can be used 2260 // only if the metric kind is `GAUGE`. 2261 // "DISTRIBUTION" - The value is a `Distribution`. 2262 // "MONEY" - The value is money. 2263 ValueType string `json:"valueType,omitempty"` 2264 2265 // ForceSendFields is a list of field names (e.g. "Description") to 2266 // unconditionally include in API requests. By default, fields with 2267 // empty or default values are omitted from API requests. However, any 2268 // non-pointer, non-interface field appearing in ForceSendFields will be 2269 // sent to the server regardless of whether the field is empty or not. 2270 // This may be used to include empty fields in Patch requests. 2271 ForceSendFields []string `json:"-"` 2272 2273 // NullFields is a list of field names (e.g. "Description") to include 2274 // in API requests with the JSON null value. By default, fields with 2275 // empty values are omitted from API requests. However, any field with 2276 // an empty value appearing in NullFields will be sent to the server as 2277 // null. It is an error if a field in this list has a non-empty value. 2278 // This may be used to include null fields in Patch requests. 2279 NullFields []string `json:"-"` 2280} 2281 2282func (s *MetricDescriptor) MarshalJSON() ([]byte, error) { 2283 type NoMethod MetricDescriptor 2284 raw := NoMethod(*s) 2285 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2286} 2287 2288// MetricDescriptorMetadata: Additional annotations that can be used to 2289// guide the usage of a metric. 2290type MetricDescriptorMetadata struct { 2291 // IngestDelay: The delay of data points caused by ingestion. Data 2292 // points older than this age are guaranteed to be ingested and 2293 // available to be read, excluding data loss due to errors. 2294 IngestDelay string `json:"ingestDelay,omitempty"` 2295 2296 // LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage 2297 // instead. 2298 // 2299 // Possible values: 2300 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2301 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2302 // use it. 2303 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2304 // visible internally. 2305 // "EARLY_ACCESS" - Early Access features are limited to a closed 2306 // group of testers. To use these features, you must sign up in advance 2307 // and sign a Trusted Tester agreement (which includes confidentiality 2308 // provisions). These features may be unstable, changed in 2309 // backward-incompatible ways, and are not guaranteed to be released. 2310 // "ALPHA" - Alpha is a limited availability test for releases before 2311 // they are cleared for widespread use. By Alpha, all significant design 2312 // issues are resolved and we are in the process of verifying 2313 // functionality. Alpha customers need to apply for access, agree to 2314 // applicable terms, and have their projects allowlisted. Alpha releases 2315 // don’t have to be feature complete, no SLAs are provided, and there 2316 // are no technical support obligations, but they will be far enough 2317 // along that customers can actually use them in test environments or 2318 // for limited-use tests -- just like they would in normal production 2319 // cases. 2320 // "BETA" - Beta is the point at which we are ready to open a release 2321 // for any customer to use. There are no SLA or technical support 2322 // obligations in a Beta release. Products will be complete from a 2323 // feature perspective, but may have some open outstanding issues. Beta 2324 // releases are suitable for limited production use cases. 2325 // "GA" - GA features are open to all developers and are considered 2326 // stable and fully qualified for production use. 2327 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2328 // and removed. For more information, see the “Deprecation Policy” 2329 // section of our [Terms of Service](https://cloud.google.com/terms/) 2330 // and the [Google Cloud Platform Subject to the Deprecation 2331 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2332 LaunchStage string `json:"launchStage,omitempty"` 2333 2334 // SamplePeriod: The sampling period of metric data points. For metrics 2335 // which are written periodically, consecutive data points are stored at 2336 // this time interval, excluding data loss due to errors. Metrics with a 2337 // higher granularity have a smaller sampling period. 2338 SamplePeriod string `json:"samplePeriod,omitempty"` 2339 2340 // ForceSendFields is a list of field names (e.g. "IngestDelay") to 2341 // unconditionally include in API requests. By default, fields with 2342 // empty or default values are omitted from API requests. However, any 2343 // non-pointer, non-interface field appearing in ForceSendFields will be 2344 // sent to the server regardless of whether the field is empty or not. 2345 // This may be used to include empty fields in Patch requests. 2346 ForceSendFields []string `json:"-"` 2347 2348 // NullFields is a list of field names (e.g. "IngestDelay") to include 2349 // in API requests with the JSON null value. By default, fields with 2350 // empty values are omitted from API requests. However, any field with 2351 // an empty value appearing in NullFields will be sent to the server as 2352 // null. It is an error if a field in this list has a non-empty value. 2353 // This may be used to include null fields in Patch requests. 2354 NullFields []string `json:"-"` 2355} 2356 2357func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) { 2358 type NoMethod MetricDescriptorMetadata 2359 raw := NoMethod(*s) 2360 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2361} 2362 2363// MetricRule: Bind API methods to metrics. Binding a method to a metric 2364// causes that metric's configured quota behaviors to apply to the 2365// method call. 2366type MetricRule struct { 2367 // MetricCosts: Metrics to update when the selected methods are called, 2368 // and the associated cost applied to each metric. The key of the map is 2369 // the metric name, and the values are the amount increased for the 2370 // metric against which the quota limits are defined. The value must not 2371 // be negative. 2372 MetricCosts map[string]string `json:"metricCosts,omitempty"` 2373 2374 // Selector: Selects the methods to which this rule applies. Refer to 2375 // selector for syntax details. 2376 Selector string `json:"selector,omitempty"` 2377 2378 // ForceSendFields is a list of field names (e.g. "MetricCosts") to 2379 // unconditionally include in API requests. By default, fields with 2380 // empty or default values are omitted from API requests. However, any 2381 // non-pointer, non-interface field appearing in ForceSendFields will be 2382 // sent to the server regardless of whether the field is empty or not. 2383 // This may be used to include empty fields in Patch requests. 2384 ForceSendFields []string `json:"-"` 2385 2386 // NullFields is a list of field names (e.g. "MetricCosts") to include 2387 // in API requests with the JSON null value. By default, fields with 2388 // empty values are omitted from API requests. However, any field with 2389 // an empty value appearing in NullFields will be sent to the server as 2390 // null. It is an error if a field in this list has a non-empty value. 2391 // This may be used to include null fields in Patch requests. 2392 NullFields []string `json:"-"` 2393} 2394 2395func (s *MetricRule) MarshalJSON() ([]byte, error) { 2396 type NoMethod MetricRule 2397 raw := NoMethod(*s) 2398 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2399} 2400 2401// Mixin: Declares an API Interface to be included in this interface. 2402// The including interface must redeclare all the methods from the 2403// included interface, but documentation and options are inherited as 2404// follows: - If after comment and whitespace stripping, the 2405// documentation string of the redeclared method is empty, it will be 2406// inherited from the original method. - Each annotation belonging to 2407// the service config (http, visibility) which is not set in the 2408// redeclared method will be inherited. - If an http annotation is 2409// inherited, the path pattern will be modified as follows. Any version 2410// prefix will be replaced by the version of the including interface 2411// plus the root path if specified. Example of a simple mixin: package 2412// google.acl.v1; service AccessControl { // Get the underlying ACL 2413// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 2414// (google.api.http).get = "/v1/{resource=**}:getAcl"; } } package 2415// google.storage.v2; service Storage { // rpc GetAcl(GetAclRequest) 2416// returns (Acl); // Get a data record. rpc GetData(GetDataRequest) 2417// returns (Data) { option (google.api.http).get = "/v2/{resource=**}"; 2418// } } Example of a mixin configuration: apis: - name: 2419// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 2420// The mixin construct implies that all methods in `AccessControl` are 2421// also declared with same name and request/response types in `Storage`. 2422// A documentation generator or annotation processor will see the 2423// effective `Storage.GetAcl` method after inheriting documentation and 2424// annotations as follows: service Storage { // Get the underlying ACL 2425// object. rpc GetAcl(GetAclRequest) returns (Acl) { option 2426// (google.api.http).get = "/v2/{resource=**}:getAcl"; } ... } Note how 2427// the version in the path pattern changed from `v1` to `v2`. If the 2428// `root` field in the mixin is specified, it should be a relative path 2429// under which inherited HTTP paths are placed. Example: apis: - name: 2430// google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl 2431// root: acls This implies the following inherited HTTP annotation: 2432// service Storage { // Get the underlying ACL object. rpc 2433// GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = 2434// "/v2/acls/{resource=**}:getAcl"; } ... } 2435type Mixin struct { 2436 // Name: The fully qualified name of the interface which is included. 2437 Name string `json:"name,omitempty"` 2438 2439 // Root: If non-empty specifies a path under which inherited HTTP paths 2440 // are rooted. 2441 Root string `json:"root,omitempty"` 2442 2443 // ForceSendFields is a list of field names (e.g. "Name") to 2444 // unconditionally include in API requests. By default, fields with 2445 // empty or default values are omitted from API requests. However, any 2446 // non-pointer, non-interface field appearing in ForceSendFields will be 2447 // sent to the server regardless of whether the field is empty or not. 2448 // This may be used to include empty fields in Patch requests. 2449 ForceSendFields []string `json:"-"` 2450 2451 // NullFields is a list of field names (e.g. "Name") to include in API 2452 // requests with the JSON null value. By default, fields with empty 2453 // values are omitted from API requests. However, any field with an 2454 // empty value appearing in NullFields will be sent to the server as 2455 // null. It is an error if a field in this list has a non-empty value. 2456 // This may be used to include null fields in Patch requests. 2457 NullFields []string `json:"-"` 2458} 2459 2460func (s *Mixin) MarshalJSON() ([]byte, error) { 2461 type NoMethod Mixin 2462 raw := NoMethod(*s) 2463 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2464} 2465 2466// MonitoredResourceDescriptor: An object that describes the schema of a 2467// MonitoredResource object using a type name and a set of labels. For 2468// example, the monitored resource descriptor for Google Compute Engine 2469// VM instances has a type of "gce_instance" and specifies the use of 2470// the labels "instance_id" and "zone" to identify particular VM 2471// instances. Different APIs can support different monitored resource 2472// types. APIs generally provide a `list` method that returns the 2473// monitored resource descriptors used by the API. 2474type MonitoredResourceDescriptor struct { 2475 // Description: Optional. A detailed description of the monitored 2476 // resource type that might be used in documentation. 2477 Description string `json:"description,omitempty"` 2478 2479 // DisplayName: Optional. A concise name for the monitored resource type 2480 // that might be displayed in user interfaces. It should be a Title 2481 // Cased Noun Phrase, without any article or other determiners. For 2482 // example, "Google Cloud SQL Database". 2483 DisplayName string `json:"displayName,omitempty"` 2484 2485 // Labels: Required. A set of labels used to describe instances of this 2486 // monitored resource type. For example, an individual Google Cloud SQL 2487 // database is identified by values for the labels "database_id" and 2488 // "zone". 2489 Labels []*LabelDescriptor `json:"labels,omitempty"` 2490 2491 // LaunchStage: Optional. The launch stage of the monitored resource 2492 // definition. 2493 // 2494 // Possible values: 2495 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 2496 // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not 2497 // use it. 2498 // "PRELAUNCH" - Prelaunch features are hidden from users and are only 2499 // visible internally. 2500 // "EARLY_ACCESS" - Early Access features are limited to a closed 2501 // group of testers. To use these features, you must sign up in advance 2502 // and sign a Trusted Tester agreement (which includes confidentiality 2503 // provisions). These features may be unstable, changed in 2504 // backward-incompatible ways, and are not guaranteed to be released. 2505 // "ALPHA" - Alpha is a limited availability test for releases before 2506 // they are cleared for widespread use. By Alpha, all significant design 2507 // issues are resolved and we are in the process of verifying 2508 // functionality. Alpha customers need to apply for access, agree to 2509 // applicable terms, and have their projects allowlisted. Alpha releases 2510 // don’t have to be feature complete, no SLAs are provided, and there 2511 // are no technical support obligations, but they will be far enough 2512 // along that customers can actually use them in test environments or 2513 // for limited-use tests -- just like they would in normal production 2514 // cases. 2515 // "BETA" - Beta is the point at which we are ready to open a release 2516 // for any customer to use. There are no SLA or technical support 2517 // obligations in a Beta release. Products will be complete from a 2518 // feature perspective, but may have some open outstanding issues. Beta 2519 // releases are suitable for limited production use cases. 2520 // "GA" - GA features are open to all developers and are considered 2521 // stable and fully qualified for production use. 2522 // "DEPRECATED" - Deprecated features are scheduled to be shut down 2523 // and removed. For more information, see the “Deprecation Policy” 2524 // section of our [Terms of Service](https://cloud.google.com/terms/) 2525 // and the [Google Cloud Platform Subject to the Deprecation 2526 // Policy](https://cloud.google.com/terms/deprecation) documentation. 2527 LaunchStage string `json:"launchStage,omitempty"` 2528 2529 // Name: Optional. The resource name of the monitored resource 2530 // descriptor: 2531 // "projects/{project_id}/monitoredResourceDescriptors/{type}" where 2532 // {type} is the value of the `type` field in this object and 2533 // {project_id} is a project ID that provides API-specific context for 2534 // accessing the type. APIs that do not use project information can use 2535 // the resource name format "monitoredResourceDescriptors/{type}". 2536 Name string `json:"name,omitempty"` 2537 2538 // Type: Required. The monitored resource type. For example, the type 2539 // "cloudsql_database" represents databases in Google Cloud SQL. For a 2540 // list of types, see Monitoring resource types 2541 // (https://cloud.google.com/monitoring/api/resources) and Logging 2542 // resource types 2543 // (https://cloud.google.com/logging/docs/api/v2/resource-list). 2544 Type string `json:"type,omitempty"` 2545 2546 // ForceSendFields is a list of field names (e.g. "Description") to 2547 // unconditionally include in API requests. By default, fields with 2548 // empty or default values are omitted from API requests. However, any 2549 // non-pointer, non-interface field appearing in ForceSendFields will be 2550 // sent to the server regardless of whether the field is empty or not. 2551 // This may be used to include empty fields in Patch requests. 2552 ForceSendFields []string `json:"-"` 2553 2554 // NullFields is a list of field names (e.g. "Description") to include 2555 // in API requests with the JSON null value. By default, fields with 2556 // empty values are omitted from API requests. However, any field with 2557 // an empty value appearing in NullFields will be sent to the server as 2558 // null. It is an error if a field in this list has a non-empty value. 2559 // This may be used to include null fields in Patch requests. 2560 NullFields []string `json:"-"` 2561} 2562 2563func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) { 2564 type NoMethod MonitoredResourceDescriptor 2565 raw := NoMethod(*s) 2566 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2567} 2568 2569// Monitoring: Monitoring configuration of the service. The example 2570// below shows how to configure monitored resources and metrics for 2571// monitoring. In the example, a monitored resource and two metrics are 2572// defined. The `library.googleapis.com/book/returned_count` metric is 2573// sent to both producer and consumer projects, whereas the 2574// `library.googleapis.com/book/num_overdue` metric is only sent to the 2575// consumer project. monitored_resources: - type: 2576// library.googleapis.com/Branch display_name: "Library Branch" 2577// description: "A branch of a library." launch_stage: GA labels: - key: 2578// resource_container description: "The Cloud container (ie. project id) 2579// for the Branch." - key: location description: "The location of the 2580// library branch." - key: branch_id description: "The id of the 2581// branch." metrics: - name: library.googleapis.com/book/returned_count 2582// display_name: "Books Returned" description: "The count of books that 2583// have been returned." launch_stage: GA metric_kind: DELTA value_type: 2584// INT64 unit: "1" labels: - key: customer_id description: "The id of 2585// the customer." - name: library.googleapis.com/book/num_overdue 2586// display_name: "Books Overdue" description: "The current number of 2587// overdue books." launch_stage: GA metric_kind: GAUGE value_type: INT64 2588// unit: "1" labels: - key: customer_id description: "The id of the 2589// customer." monitoring: producer_destinations: - monitored_resource: 2590// library.googleapis.com/Branch metrics: - 2591// library.googleapis.com/book/returned_count consumer_destinations: - 2592// monitored_resource: library.googleapis.com/Branch metrics: - 2593// library.googleapis.com/book/returned_count - 2594// library.googleapis.com/book/num_overdue 2595type Monitoring struct { 2596 // ConsumerDestinations: Monitoring configurations for sending metrics 2597 // to the consumer project. There can be multiple consumer destinations. 2598 // A monitored resource type may appear in multiple monitoring 2599 // destinations if different aggregations are needed for different sets 2600 // of metrics associated with that monitored resource type. A monitored 2601 // resource and metric pair may only be used once in the Monitoring 2602 // configuration. 2603 ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"` 2604 2605 // ProducerDestinations: Monitoring configurations for sending metrics 2606 // to the producer project. There can be multiple producer destinations. 2607 // A monitored resource type may appear in multiple monitoring 2608 // destinations if different aggregations are needed for different sets 2609 // of metrics associated with that monitored resource type. A monitored 2610 // resource and metric pair may only be used once in the Monitoring 2611 // configuration. 2612 ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"` 2613 2614 // ForceSendFields is a list of field names (e.g. 2615 // "ConsumerDestinations") to unconditionally include in API requests. 2616 // By default, fields with empty or default values are omitted from API 2617 // requests. However, any non-pointer, non-interface field appearing in 2618 // ForceSendFields will be sent to the server regardless of whether the 2619 // field is empty or not. This may be used to include empty fields in 2620 // Patch requests. 2621 ForceSendFields []string `json:"-"` 2622 2623 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 2624 // include in API requests with the JSON null value. By default, fields 2625 // with empty values are omitted from API requests. However, any field 2626 // with an empty value appearing in NullFields will be sent to the 2627 // server as null. It is an error if a field in this list has a 2628 // non-empty value. This may be used to include null fields in Patch 2629 // requests. 2630 NullFields []string `json:"-"` 2631} 2632 2633func (s *Monitoring) MarshalJSON() ([]byte, error) { 2634 type NoMethod Monitoring 2635 raw := NoMethod(*s) 2636 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2637} 2638 2639// MonitoringDestination: Configuration of a specific monitoring 2640// destination (the producer project or the consumer project). 2641type MonitoringDestination struct { 2642 // Metrics: Types of the metrics to report to this monitoring 2643 // destination. Each type must be defined in Service.metrics section. 2644 Metrics []string `json:"metrics,omitempty"` 2645 2646 // MonitoredResource: The monitored resource type. The type must be 2647 // defined in Service.monitored_resources section. 2648 MonitoredResource string `json:"monitoredResource,omitempty"` 2649 2650 // ForceSendFields is a list of field names (e.g. "Metrics") to 2651 // unconditionally include in API requests. By default, fields with 2652 // empty or default values are omitted from API requests. However, any 2653 // non-pointer, non-interface field appearing in ForceSendFields will be 2654 // sent to the server regardless of whether the field is empty or not. 2655 // This may be used to include empty fields in Patch requests. 2656 ForceSendFields []string `json:"-"` 2657 2658 // NullFields is a list of field names (e.g. "Metrics") to include in 2659 // API requests with the JSON null value. By default, fields with empty 2660 // values are omitted from API requests. However, any field with an 2661 // empty value appearing in NullFields will be sent to the server as 2662 // null. It is an error if a field in this list has a non-empty value. 2663 // This may be used to include null fields in Patch requests. 2664 NullFields []string `json:"-"` 2665} 2666 2667func (s *MonitoringDestination) MarshalJSON() ([]byte, error) { 2668 type NoMethod MonitoringDestination 2669 raw := NoMethod(*s) 2670 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2671} 2672 2673// OAuthRequirements: OAuth scopes are a way to define data and 2674// permissions on data. For example, there are scopes defined for 2675// "Read-only access to Google Calendar" and "Access to Cloud Platform". 2676// Users can consent to a scope for an application, giving it permission 2677// to access that data on their behalf. OAuth scope specifications 2678// should be fairly coarse grained; a user will need to see and 2679// understand the text description of what your scope means. In most 2680// cases: use one or at most two OAuth scopes for an entire family of 2681// products. If your product has multiple APIs, you should probably be 2682// sharing the OAuth scope across all of those APIs. When you need finer 2683// grained OAuth consent screens: talk with your product management 2684// about how developers will use them in practice. Please note that even 2685// though each of the canonical scopes is enough for a request to be 2686// accepted and passed to the backend, a request can still fail due to 2687// the backend requiring additional scopes or permissions. 2688type OAuthRequirements struct { 2689 // CanonicalScopes: The list of publicly documented OAuth scopes that 2690 // are allowed access. An OAuth token containing any of these scopes 2691 // will be accepted. Example: canonical_scopes: 2692 // https://www.googleapis.com/auth/calendar, 2693 // https://www.googleapis.com/auth/calendar.read 2694 CanonicalScopes string `json:"canonicalScopes,omitempty"` 2695 2696 // ForceSendFields is a list of field names (e.g. "CanonicalScopes") to 2697 // unconditionally include in API requests. By default, fields with 2698 // empty or default values are omitted from API requests. However, any 2699 // non-pointer, non-interface field appearing in ForceSendFields will be 2700 // sent to the server regardless of whether the field is empty or not. 2701 // This may be used to include empty fields in Patch requests. 2702 ForceSendFields []string `json:"-"` 2703 2704 // NullFields is a list of field names (e.g. "CanonicalScopes") to 2705 // include in API requests with the JSON null value. By default, fields 2706 // with empty values are omitted from API requests. However, any field 2707 // with an empty value appearing in NullFields will be sent to the 2708 // server as null. It is an error if a field in this list has a 2709 // non-empty value. This may be used to include null fields in Patch 2710 // requests. 2711 NullFields []string `json:"-"` 2712} 2713 2714func (s *OAuthRequirements) MarshalJSON() ([]byte, error) { 2715 type NoMethod OAuthRequirements 2716 raw := NoMethod(*s) 2717 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2718} 2719 2720// Operation: This resource represents a long-running operation that is 2721// the result of a network API call. 2722type Operation struct { 2723 // Done: If the value is `false`, it means the operation is still in 2724 // progress. If `true`, the operation is completed, and either `error` 2725 // or `response` is available. 2726 Done bool `json:"done,omitempty"` 2727 2728 // Error: The error result of the operation in case of failure or 2729 // cancellation. 2730 Error *Status `json:"error,omitempty"` 2731 2732 // Metadata: Service-specific metadata associated with the operation. It 2733 // typically contains progress information and common metadata such as 2734 // create time. Some services might not provide such metadata. Any 2735 // method that returns a long-running operation should document the 2736 // metadata type, if any. 2737 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 2738 2739 // Name: The server-assigned name, which is only unique within the same 2740 // service that originally returns it. If you use the default HTTP 2741 // mapping, the `name` should be a resource name ending with 2742 // `operations/{unique_id}`. 2743 Name string `json:"name,omitempty"` 2744 2745 // Response: The normal response of the operation in case of success. If 2746 // the original method returns no data on success, such as `Delete`, the 2747 // response is `google.protobuf.Empty`. If the original method is 2748 // standard `Get`/`Create`/`Update`, the response should be the 2749 // resource. For other methods, the response should have the type 2750 // `XxxResponse`, where `Xxx` is the original method name. For example, 2751 // if the original method name is `TakeSnapshot()`, the inferred 2752 // response type is `TakeSnapshotResponse`. 2753 Response googleapi.RawMessage `json:"response,omitempty"` 2754 2755 // ServerResponse contains the HTTP response code and headers from the 2756 // server. 2757 googleapi.ServerResponse `json:"-"` 2758 2759 // ForceSendFields is a list of field names (e.g. "Done") to 2760 // unconditionally include in API requests. By default, fields with 2761 // empty or default values are omitted from API requests. However, any 2762 // non-pointer, non-interface field appearing in ForceSendFields will be 2763 // sent to the server regardless of whether the field is empty or not. 2764 // This may be used to include empty fields in Patch requests. 2765 ForceSendFields []string `json:"-"` 2766 2767 // NullFields is a list of field names (e.g. "Done") to include in API 2768 // requests with the JSON null value. By default, fields with empty 2769 // values are omitted from API requests. However, any field with an 2770 // empty value appearing in NullFields will be sent to the server as 2771 // null. It is an error if a field in this list has a non-empty value. 2772 // This may be used to include null fields in Patch requests. 2773 NullFields []string `json:"-"` 2774} 2775 2776func (s *Operation) MarshalJSON() ([]byte, error) { 2777 type NoMethod Operation 2778 raw := NoMethod(*s) 2779 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2780} 2781 2782// Option: A protocol buffer option, which can be attached to a message, 2783// field, enumeration, etc. 2784type Option struct { 2785 // Name: The option's name. For protobuf built-in options (options 2786 // defined in descriptor.proto), this is the short name. For example, 2787 // "map_entry". For custom options, it should be the fully-qualified 2788 // name. For example, "google.api.http". 2789 Name string `json:"name,omitempty"` 2790 2791 // Value: The option's value packed in an Any message. If the value is a 2792 // primitive, the corresponding wrapper type defined in 2793 // google/protobuf/wrappers.proto should be used. If the value is an 2794 // enum, it should be stored as an int32 value using the 2795 // google.protobuf.Int32Value type. 2796 Value googleapi.RawMessage `json:"value,omitempty"` 2797 2798 // ForceSendFields is a list of field names (e.g. "Name") to 2799 // unconditionally include in API requests. By default, fields with 2800 // empty or default values are omitted from API requests. However, any 2801 // non-pointer, non-interface field appearing in ForceSendFields will be 2802 // sent to the server regardless of whether the field is empty or not. 2803 // This may be used to include empty fields in Patch requests. 2804 ForceSendFields []string `json:"-"` 2805 2806 // NullFields is a list of field names (e.g. "Name") to include in API 2807 // requests with the JSON null value. By default, fields with empty 2808 // values are omitted from API requests. However, any field with an 2809 // empty value appearing in NullFields will be sent to the server as 2810 // null. It is an error if a field in this list has a non-empty value. 2811 // This may be used to include null fields in Patch requests. 2812 NullFields []string `json:"-"` 2813} 2814 2815func (s *Option) MarshalJSON() ([]byte, error) { 2816 type NoMethod Option 2817 raw := NoMethod(*s) 2818 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2819} 2820 2821// Page: Represents a documentation page. A page can contain subpages to 2822// represent nested documentation set structure. 2823type Page struct { 2824 // Content: The Markdown content of the page. You can use (== include 2825 // {path} ==) to include content from a Markdown file. The content can 2826 // be used to produce the documentation page such as HTML format page. 2827 Content string `json:"content,omitempty"` 2828 2829 // Name: The name of the page. It will be used as an identity of the 2830 // page to generate URI of the page, text of the link to this page in 2831 // navigation, etc. The full page name (start from the root page name to 2832 // this page concatenated with `.`) can be used as reference to the page 2833 // in your documentation. For example: pages: - name: Tutorial content: 2834 // (== include tutorial.md ==) subpages: - name: Java content: (== 2835 // include tutorial_java.md ==) You can reference `Java` page using 2836 // Markdown reference link syntax: `Java`. 2837 Name string `json:"name,omitempty"` 2838 2839 // Subpages: Subpages of this page. The order of subpages specified here 2840 // will be honored in the generated docset. 2841 Subpages []*Page `json:"subpages,omitempty"` 2842 2843 // ForceSendFields is a list of field names (e.g. "Content") to 2844 // unconditionally include in API requests. By default, fields with 2845 // empty or default values are omitted from API requests. However, any 2846 // non-pointer, non-interface field appearing in ForceSendFields will be 2847 // sent to the server regardless of whether the field is empty or not. 2848 // This may be used to include empty fields in Patch requests. 2849 ForceSendFields []string `json:"-"` 2850 2851 // NullFields is a list of field names (e.g. "Content") to include in 2852 // API requests with the JSON null value. By default, fields with empty 2853 // values are omitted from API requests. However, any field with an 2854 // empty value appearing in NullFields will be sent to the server as 2855 // null. It is an error if a field in this list has a non-empty value. 2856 // This may be used to include null fields in Patch requests. 2857 NullFields []string `json:"-"` 2858} 2859 2860func (s *Page) MarshalJSON() ([]byte, error) { 2861 type NoMethod Page 2862 raw := NoMethod(*s) 2863 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2864} 2865 2866// PolicyBinding: Translates to IAM Policy bindings (without auditing at 2867// this level) 2868type PolicyBinding struct { 2869 // Members: Uses the same format as in IAM policy. `member` must include 2870 // both a prefix and ID. For example, `user:{emailId}`, 2871 // `serviceAccount:{emailId}`, `group:{emailId}`. 2872 Members []string `json:"members,omitempty"` 2873 2874 // Role: Role. (https://cloud.google.com/iam/docs/understanding-roles) 2875 // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. 2876 Role string `json:"role,omitempty"` 2877 2878 // ForceSendFields is a list of field names (e.g. "Members") to 2879 // unconditionally include in API requests. By default, fields with 2880 // empty or default values are omitted from API requests. However, any 2881 // non-pointer, non-interface field appearing in ForceSendFields will be 2882 // sent to the server regardless of whether the field is empty or not. 2883 // This may be used to include empty fields in Patch requests. 2884 ForceSendFields []string `json:"-"` 2885 2886 // NullFields is a list of field names (e.g. "Members") to include in 2887 // API requests with the JSON null value. By default, fields with empty 2888 // values are omitted from API requests. However, any field with an 2889 // empty value appearing in NullFields will be sent to the server as 2890 // null. It is an error if a field in this list has a non-empty value. 2891 // This may be used to include null fields in Patch requests. 2892 NullFields []string `json:"-"` 2893} 2894 2895func (s *PolicyBinding) MarshalJSON() ([]byte, error) { 2896 type NoMethod PolicyBinding 2897 raw := NoMethod(*s) 2898 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2899} 2900 2901// Quota: Quota configuration helps to achieve fairness and budgeting in 2902// service usage. The metric based quota configuration works this way: - 2903// The service configuration defines a set of metrics. - For API calls, 2904// the quota.metric_rules maps methods to metrics with corresponding 2905// costs. - The quota.limits defines limits on the metrics, which will 2906// be used for quota checks at runtime. An example quota configuration 2907// in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: 2908// library.googleapis.com/write_calls unit: "1/min/{project}" # rate 2909// limit for consumer projects values: STANDARD: 10000 # The metric 2910// rules bind all methods to the read_calls metric, # except for the 2911// UpdateBook and DeleteBook methods. These two methods # are mapped to 2912// the write_calls metric, with the UpdateBook method # consuming at 2913// twice rate as the DeleteBook method. metric_rules: - selector: "*" 2914// metric_costs: library.googleapis.com/read_calls: 1 - selector: 2915// google.example.library.v1.LibraryService.UpdateBook metric_costs: 2916// library.googleapis.com/write_calls: 2 - selector: 2917// google.example.library.v1.LibraryService.DeleteBook metric_costs: 2918// library.googleapis.com/write_calls: 1 Corresponding Metric 2919// definition: metrics: - name: library.googleapis.com/read_calls 2920// display_name: Read requests metric_kind: DELTA value_type: INT64 - 2921// name: library.googleapis.com/write_calls display_name: Write requests 2922// metric_kind: DELTA value_type: INT64 2923type Quota struct { 2924 // Limits: List of `QuotaLimit` definitions for the service. 2925 Limits []*QuotaLimit `json:"limits,omitempty"` 2926 2927 // MetricRules: List of `MetricRule` definitions, each one mapping a 2928 // selected method to one or more metrics. 2929 MetricRules []*MetricRule `json:"metricRules,omitempty"` 2930 2931 // ForceSendFields is a list of field names (e.g. "Limits") to 2932 // unconditionally include in API requests. By default, fields with 2933 // empty or default values are omitted from API requests. However, any 2934 // non-pointer, non-interface field appearing in ForceSendFields will be 2935 // sent to the server regardless of whether the field is empty or not. 2936 // This may be used to include empty fields in Patch requests. 2937 ForceSendFields []string `json:"-"` 2938 2939 // NullFields is a list of field names (e.g. "Limits") to include in API 2940 // requests with the JSON null value. By default, fields with empty 2941 // values are omitted from API requests. However, any field with an 2942 // empty value appearing in NullFields will be sent to the server as 2943 // null. It is an error if a field in this list has a non-empty value. 2944 // This may be used to include null fields in Patch requests. 2945 NullFields []string `json:"-"` 2946} 2947 2948func (s *Quota) MarshalJSON() ([]byte, error) { 2949 type NoMethod Quota 2950 raw := NoMethod(*s) 2951 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2952} 2953 2954// QuotaLimit: `QuotaLimit` defines a specific limit that applies over a 2955// specified duration for a limit type. There can be at most one limit 2956// for a duration and limit type combination defined within a 2957// `QuotaGroup`. 2958type QuotaLimit struct { 2959 // DefaultLimit: Default number of tokens that can be consumed during 2960 // the specified duration. This is the number of tokens assigned when a 2961 // client application developer activates the service for his/her 2962 // project. Specifying a value of 0 will block all requests. This can be 2963 // used if you are provisioning quota to selected consumers and blocking 2964 // others. Similarly, a value of -1 will indicate an unlimited quota. No 2965 // other negative values are allowed. Used by group-based quotas only. 2966 DefaultLimit int64 `json:"defaultLimit,omitempty,string"` 2967 2968 // Description: Optional. User-visible, extended description for this 2969 // quota limit. Should be used only when more context is needed to 2970 // understand this limit than provided by the limit's display name (see: 2971 // `display_name`). 2972 Description string `json:"description,omitempty"` 2973 2974 // DisplayName: User-visible display name for this limit. Optional. If 2975 // not set, the UI will provide a default display name based on the 2976 // quota configuration. This field can be used to override the default 2977 // display name generated from the configuration. 2978 DisplayName string `json:"displayName,omitempty"` 2979 2980 // Duration: Duration of this limit in textual notation. Must be "100s" 2981 // or "1d". Used by group-based quotas only. 2982 Duration string `json:"duration,omitempty"` 2983 2984 // FreeTier: Free tier value displayed in the Developers Console for 2985 // this limit. The free tier is the number of tokens that will be 2986 // subtracted from the billed amount when billing is enabled. This field 2987 // can only be set on a limit with duration "1d", in a billable group; 2988 // it is invalid on any other limit. If this field is not set, it 2989 // defaults to 0, indicating that there is no free tier for this 2990 // service. Used by group-based quotas only. 2991 FreeTier int64 `json:"freeTier,omitempty,string"` 2992 2993 // MaxLimit: Maximum number of tokens that can be consumed during the 2994 // specified duration. Client application developers can override the 2995 // default limit up to this maximum. If specified, this value cannot be 2996 // set to a value less than the default limit. If not specified, it is 2997 // set to the default limit. To allow clients to apply overrides with no 2998 // upper bound, set this to -1, indicating unlimited maximum quota. Used 2999 // by group-based quotas only. 3000 MaxLimit int64 `json:"maxLimit,omitempty,string"` 3001 3002 // Metric: The name of the metric this quota limit applies to. The quota 3003 // limits with the same metric will be checked together during runtime. 3004 // The metric must be defined within the service config. 3005 Metric string `json:"metric,omitempty"` 3006 3007 // Name: Name of the quota limit. The name must be provided, and it must 3008 // be unique within the service. The name can only include alphanumeric 3009 // characters as well as '-'. The maximum length of the limit name is 64 3010 // characters. 3011 Name string `json:"name,omitempty"` 3012 3013 // Unit: Specify the unit of the quota limit. It uses the same syntax as 3014 // Metric.unit. The supported unit kinds are determined by the quota 3015 // backend system. Here are some examples: * "1/min/{project}" for quota 3016 // per minute per project. Note: the order of unit components is 3017 // insignificant. The "1" at the beginning is required to follow the 3018 // metric unit syntax. 3019 Unit string `json:"unit,omitempty"` 3020 3021 // Values: Tiered limit values. You must specify this as a key:value 3022 // pair, with an integer value that is the maximum number of requests 3023 // allowed for the specified unit. Currently only STANDARD is supported. 3024 Values map[string]string `json:"values,omitempty"` 3025 3026 // ForceSendFields is a list of field names (e.g. "DefaultLimit") to 3027 // unconditionally include in API requests. By default, fields with 3028 // empty or default values are omitted from API requests. However, any 3029 // non-pointer, non-interface field appearing in ForceSendFields will be 3030 // sent to the server regardless of whether the field is empty or not. 3031 // This may be used to include empty fields in Patch requests. 3032 ForceSendFields []string `json:"-"` 3033 3034 // NullFields is a list of field names (e.g. "DefaultLimit") to include 3035 // in API requests with the JSON null value. By default, fields with 3036 // empty values are omitted from API requests. However, any field with 3037 // an empty value appearing in NullFields will be sent to the server as 3038 // null. It is an error if a field in this list has a non-empty value. 3039 // This may be used to include null fields in Patch requests. 3040 NullFields []string `json:"-"` 3041} 3042 3043func (s *QuotaLimit) MarshalJSON() ([]byte, error) { 3044 type NoMethod QuotaLimit 3045 raw := NoMethod(*s) 3046 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3047} 3048 3049// RemoveTenantProjectRequest: Request message to remove a tenant 3050// project resource from the tenancy unit. 3051type RemoveTenantProjectRequest struct { 3052 // Tag: Required. Tag of the resource within the tenancy unit. 3053 Tag string `json:"tag,omitempty"` 3054 3055 // ForceSendFields is a list of field names (e.g. "Tag") to 3056 // unconditionally include in API requests. By default, fields with 3057 // empty or default values are omitted from API requests. However, any 3058 // non-pointer, non-interface field appearing in ForceSendFields will be 3059 // sent to the server regardless of whether the field is empty or not. 3060 // This may be used to include empty fields in Patch requests. 3061 ForceSendFields []string `json:"-"` 3062 3063 // NullFields is a list of field names (e.g. "Tag") to include in API 3064 // requests with the JSON null value. By default, fields with empty 3065 // values are omitted from API requests. However, any field with an 3066 // empty value appearing in NullFields will be sent to the server as 3067 // null. It is an error if a field in this list has a non-empty value. 3068 // This may be used to include null fields in Patch requests. 3069 NullFields []string `json:"-"` 3070} 3071 3072func (s *RemoveTenantProjectRequest) MarshalJSON() ([]byte, error) { 3073 type NoMethod RemoveTenantProjectRequest 3074 raw := NoMethod(*s) 3075 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3076} 3077 3078// SearchTenancyUnitsResponse: Response for the search query. 3079type SearchTenancyUnitsResponse struct { 3080 // NextPageToken: Pagination token for large results. 3081 NextPageToken string `json:"nextPageToken,omitempty"` 3082 3083 // TenancyUnits: Tenancy Units matching the request. 3084 TenancyUnits []*TenancyUnit `json:"tenancyUnits,omitempty"` 3085 3086 // ServerResponse contains the HTTP response code and headers from the 3087 // server. 3088 googleapi.ServerResponse `json:"-"` 3089 3090 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3091 // unconditionally include in API requests. By default, fields with 3092 // empty or default values are omitted from API requests. However, any 3093 // non-pointer, non-interface field appearing in ForceSendFields will be 3094 // sent to the server regardless of whether the field is empty or not. 3095 // This may be used to include empty fields in Patch requests. 3096 ForceSendFields []string `json:"-"` 3097 3098 // NullFields is a list of field names (e.g. "NextPageToken") to include 3099 // in API requests with the JSON null value. By default, fields with 3100 // empty values are omitted from API requests. However, any field with 3101 // an empty value appearing in NullFields will be sent to the server as 3102 // null. It is an error if a field in this list has a non-empty value. 3103 // This may be used to include null fields in Patch requests. 3104 NullFields []string `json:"-"` 3105} 3106 3107func (s *SearchTenancyUnitsResponse) MarshalJSON() ([]byte, error) { 3108 type NoMethod SearchTenancyUnitsResponse 3109 raw := NoMethod(*s) 3110 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3111} 3112 3113// Service: `Service` is the root object of Google API service 3114// configuration (service config). It describes the basic information 3115// about a logical service, such as the service name and the user-facing 3116// title, and delegates other aspects to sub-sections. Each sub-section 3117// is either a proto message or a repeated proto message that configures 3118// a specific aspect, such as auth. For more information, see each proto 3119// message definition. Example: type: google.api.Service name: 3120// calendar.googleapis.com title: Google Calendar API apis: - name: 3121// google.calendar.v3.Calendar visibility: rules: - selector: 3122// "google.calendar.v3.*" restriction: PREVIEW backend: rules: - 3123// selector: "google.calendar.v3.*" address: calendar.example.com 3124// authentication: providers: - id: google_calendar_auth jwks_uri: 3125// https://www.googleapis.com/oauth2/v1/certs issuer: 3126// https://securetoken.google.com rules: - selector: "*" requirements: 3127// provider_id: google_calendar_auth 3128type Service struct { 3129 // Apis: A list of API interfaces exported by this service. Only the 3130 // `name` field of the google.protobuf.Api needs to be provided by the 3131 // configuration author, as the remaining fields will be derived from 3132 // the IDL during the normalization process. It is an error to specify 3133 // an API interface here which cannot be resolved against the associated 3134 // IDL files. 3135 Apis []*Api `json:"apis,omitempty"` 3136 3137 // Authentication: Auth configuration. 3138 Authentication *Authentication `json:"authentication,omitempty"` 3139 3140 // Backend: API backend configuration. 3141 Backend *Backend `json:"backend,omitempty"` 3142 3143 // Billing: Billing configuration. 3144 Billing *Billing `json:"billing,omitempty"` 3145 3146 // ConfigVersion: Obsolete. Do not use. This field has no semantic 3147 // meaning. The service config compiler always sets this field to `3`. 3148 ConfigVersion int64 `json:"configVersion,omitempty"` 3149 3150 // Context: Context configuration. 3151 Context *Context `json:"context,omitempty"` 3152 3153 // Control: Configuration for the service control plane. 3154 Control *Control `json:"control,omitempty"` 3155 3156 // CustomError: Custom error configuration. 3157 CustomError *CustomError `json:"customError,omitempty"` 3158 3159 // Documentation: Additional API documentation. 3160 Documentation *Documentation `json:"documentation,omitempty"` 3161 3162 // Endpoints: Configuration for network endpoints. If this is empty, 3163 // then an endpoint with the same name as the service is automatically 3164 // generated to service all defined APIs. 3165 Endpoints []*Endpoint `json:"endpoints,omitempty"` 3166 3167 // Enums: A list of all enum types included in this API service. Enums 3168 // referenced directly or indirectly by the `apis` are automatically 3169 // included. Enums which are not referenced but shall be included should 3170 // be listed here by name by the configuration author. Example: enums: - 3171 // name: google.someapi.v1.SomeEnum 3172 Enums []*Enum `json:"enums,omitempty"` 3173 3174 // Http: HTTP configuration. 3175 Http *Http `json:"http,omitempty"` 3176 3177 // Id: A unique ID for a specific instance of this message, typically 3178 // assigned by the client for tracking purpose. Must be no longer than 3179 // 63 characters and only lower case letters, digits, '.', '_' and '-' 3180 // are allowed. If empty, the server may choose to generate one instead. 3181 Id string `json:"id,omitempty"` 3182 3183 // Logging: Logging configuration. 3184 Logging *Logging `json:"logging,omitempty"` 3185 3186 // Logs: Defines the logs used by this service. 3187 Logs []*LogDescriptor `json:"logs,omitempty"` 3188 3189 // Metrics: Defines the metrics used by this service. 3190 Metrics []*MetricDescriptor `json:"metrics,omitempty"` 3191 3192 // MonitoredResources: Defines the monitored resources used by this 3193 // service. This is required by the Service.monitoring and 3194 // Service.logging configurations. 3195 MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"` 3196 3197 // Monitoring: Monitoring configuration. 3198 Monitoring *Monitoring `json:"monitoring,omitempty"` 3199 3200 // Name: The service name, which is a DNS-like logical identifier for 3201 // the service, such as `calendar.googleapis.com`. The service name 3202 // typically goes through DNS verification to make sure the owner of the 3203 // service also owns the DNS name. 3204 Name string `json:"name,omitempty"` 3205 3206 // ProducerProjectId: The Google project that owns this service. 3207 ProducerProjectId string `json:"producerProjectId,omitempty"` 3208 3209 // Quota: Quota configuration. 3210 Quota *Quota `json:"quota,omitempty"` 3211 3212 // SourceInfo: Output only. The source information for this 3213 // configuration if available. 3214 SourceInfo *SourceInfo `json:"sourceInfo,omitempty"` 3215 3216 // SystemParameters: System parameter configuration. 3217 SystemParameters *SystemParameters `json:"systemParameters,omitempty"` 3218 3219 // SystemTypes: A list of all proto message types included in this API 3220 // service. It serves similar purpose as [google.api.Service.types], 3221 // except that these types are not needed by user-defined APIs. 3222 // Therefore, they will not show up in the generated discovery doc. This 3223 // field should only be used to define system APIs in ESF. 3224 SystemTypes []*Type `json:"systemTypes,omitempty"` 3225 3226 // Title: The product title for this service, it is the name displayed 3227 // in Google Cloud Console. 3228 Title string `json:"title,omitempty"` 3229 3230 // Types: A list of all proto message types included in this API 3231 // service. Types referenced directly or indirectly by the `apis` are 3232 // automatically included. Messages which are not referenced but shall 3233 // be included, such as types used by the `google.protobuf.Any` type, 3234 // should be listed here by name by the configuration author. Example: 3235 // types: - name: google.protobuf.Int32 3236 Types []*Type `json:"types,omitempty"` 3237 3238 // Usage: Configuration controlling usage of this service. 3239 Usage *Usage `json:"usage,omitempty"` 3240 3241 // ForceSendFields is a list of field names (e.g. "Apis") to 3242 // unconditionally include in API requests. By default, fields with 3243 // empty or default values are omitted from API requests. However, any 3244 // non-pointer, non-interface field appearing in ForceSendFields will be 3245 // sent to the server regardless of whether the field is empty or not. 3246 // This may be used to include empty fields in Patch requests. 3247 ForceSendFields []string `json:"-"` 3248 3249 // NullFields is a list of field names (e.g. "Apis") to include in API 3250 // requests with the JSON null value. By default, fields with empty 3251 // values are omitted from API requests. However, any field with an 3252 // empty value appearing in NullFields will be sent to the server as 3253 // null. It is an error if a field in this list has a non-empty value. 3254 // This may be used to include null fields in Patch requests. 3255 NullFields []string `json:"-"` 3256} 3257 3258func (s *Service) MarshalJSON() ([]byte, error) { 3259 type NoMethod Service 3260 raw := NoMethod(*s) 3261 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3262} 3263 3264// ServiceAccountConfig: Describes the service account configuration for 3265// the tenant project. 3266type ServiceAccountConfig struct { 3267 // AccountId: ID of the IAM service account to be created in tenant 3268 // project. The email format of the service account is 3269 // "@.iam.gserviceaccount.com". This account ID must be unique within 3270 // tenant project and service producers have to guarantee it. The ID 3271 // must be 6-30 characters long, and match the following regular 3272 // expression: `[a-z]([-a-z0-9]*[a-z0-9])`. 3273 AccountId string `json:"accountId,omitempty"` 3274 3275 // TenantProjectRoles: Roles for the associated service account for the 3276 // tenant project. 3277 TenantProjectRoles []string `json:"tenantProjectRoles,omitempty"` 3278 3279 // ForceSendFields is a list of field names (e.g. "AccountId") to 3280 // unconditionally include in API requests. By default, fields with 3281 // empty or default values are omitted from API requests. However, any 3282 // non-pointer, non-interface field appearing in ForceSendFields will be 3283 // sent to the server regardless of whether the field is empty or not. 3284 // This may be used to include empty fields in Patch requests. 3285 ForceSendFields []string `json:"-"` 3286 3287 // NullFields is a list of field names (e.g. "AccountId") to include in 3288 // API requests with the JSON null value. By default, fields with empty 3289 // values are omitted from API requests. However, any field with an 3290 // empty value appearing in NullFields will be sent to the server as 3291 // null. It is an error if a field in this list has a non-empty value. 3292 // This may be used to include null fields in Patch requests. 3293 NullFields []string `json:"-"` 3294} 3295 3296func (s *ServiceAccountConfig) MarshalJSON() ([]byte, error) { 3297 type NoMethod ServiceAccountConfig 3298 raw := NoMethod(*s) 3299 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3300} 3301 3302// SourceContext: `SourceContext` represents information about the 3303// source of a protobuf element, like the file in which it is defined. 3304type SourceContext struct { 3305 // FileName: The path-qualified name of the .proto file that contained 3306 // the associated protobuf element. For example: 3307 // "google/protobuf/source_context.proto". 3308 FileName string `json:"fileName,omitempty"` 3309 3310 // ForceSendFields is a list of field names (e.g. "FileName") to 3311 // unconditionally include in API requests. By default, fields with 3312 // empty or default values are omitted from API requests. However, any 3313 // non-pointer, non-interface field appearing in ForceSendFields will be 3314 // sent to the server regardless of whether the field is empty or not. 3315 // This may be used to include empty fields in Patch requests. 3316 ForceSendFields []string `json:"-"` 3317 3318 // NullFields is a list of field names (e.g. "FileName") to include in 3319 // API requests with the JSON null value. By default, fields with empty 3320 // values are omitted from API requests. However, any field with an 3321 // empty value appearing in NullFields will be sent to the server as 3322 // null. It is an error if a field in this list has a non-empty value. 3323 // This may be used to include null fields in Patch requests. 3324 NullFields []string `json:"-"` 3325} 3326 3327func (s *SourceContext) MarshalJSON() ([]byte, error) { 3328 type NoMethod SourceContext 3329 raw := NoMethod(*s) 3330 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3331} 3332 3333// SourceInfo: Source information used to create a Service Config 3334type SourceInfo struct { 3335 // SourceFiles: All files used during config generation. 3336 SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"` 3337 3338 // ForceSendFields is a list of field names (e.g. "SourceFiles") to 3339 // unconditionally include in API requests. By default, fields with 3340 // empty or default values are omitted from API requests. However, any 3341 // non-pointer, non-interface field appearing in ForceSendFields will be 3342 // sent to the server regardless of whether the field is empty or not. 3343 // This may be used to include empty fields in Patch requests. 3344 ForceSendFields []string `json:"-"` 3345 3346 // NullFields is a list of field names (e.g. "SourceFiles") to include 3347 // in API requests with the JSON null value. By default, fields with 3348 // empty values are omitted from API requests. However, any field with 3349 // an empty value appearing in NullFields will be sent to the server as 3350 // null. It is an error if a field in this list has a non-empty value. 3351 // This may be used to include null fields in Patch requests. 3352 NullFields []string `json:"-"` 3353} 3354 3355func (s *SourceInfo) MarshalJSON() ([]byte, error) { 3356 type NoMethod SourceInfo 3357 raw := NoMethod(*s) 3358 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3359} 3360 3361// Status: The `Status` type defines a logical error model that is 3362// suitable for different programming environments, including REST APIs 3363// and RPC APIs. It is used by gRPC (https://github.com/grpc). Each 3364// `Status` message contains three pieces of data: error code, error 3365// message, and error details. You can find out more about this error 3366// model and how to work with it in the API Design Guide 3367// (https://cloud.google.com/apis/design/errors). 3368type Status struct { 3369 // Code: The status code, which should be an enum value of 3370 // google.rpc.Code. 3371 Code int64 `json:"code,omitempty"` 3372 3373 // Details: A list of messages that carry the error details. There is a 3374 // common set of message types for APIs to use. 3375 Details []googleapi.RawMessage `json:"details,omitempty"` 3376 3377 // Message: A developer-facing error message, which should be in 3378 // English. Any user-facing error message should be localized and sent 3379 // in the google.rpc.Status.details field, or localized by the client. 3380 Message string `json:"message,omitempty"` 3381 3382 // ForceSendFields is a list of field names (e.g. "Code") to 3383 // unconditionally include in API requests. By default, fields with 3384 // empty or default values are omitted from API requests. However, any 3385 // non-pointer, non-interface field appearing in ForceSendFields will be 3386 // sent to the server regardless of whether the field is empty or not. 3387 // This may be used to include empty fields in Patch requests. 3388 ForceSendFields []string `json:"-"` 3389 3390 // NullFields is a list of field names (e.g. "Code") to include in API 3391 // requests with the JSON null value. By default, fields with empty 3392 // values are omitted from API requests. However, any field with an 3393 // empty value appearing in NullFields will be sent to the server as 3394 // null. It is an error if a field in this list has a non-empty value. 3395 // This may be used to include null fields in Patch requests. 3396 NullFields []string `json:"-"` 3397} 3398 3399func (s *Status) MarshalJSON() ([]byte, error) { 3400 type NoMethod Status 3401 raw := NoMethod(*s) 3402 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3403} 3404 3405// SystemParameter: Define a parameter's name and location. The 3406// parameter may be passed as either an HTTP header or a URL query 3407// parameter, and if both are passed the behavior is 3408// implementation-dependent. 3409type SystemParameter struct { 3410 // HttpHeader: Define the HTTP header name to use for the parameter. It 3411 // is case insensitive. 3412 HttpHeader string `json:"httpHeader,omitempty"` 3413 3414 // Name: Define the name of the parameter, such as "api_key" . It is 3415 // case sensitive. 3416 Name string `json:"name,omitempty"` 3417 3418 // UrlQueryParameter: Define the URL query parameter name to use for the 3419 // parameter. It is case sensitive. 3420 UrlQueryParameter string `json:"urlQueryParameter,omitempty"` 3421 3422 // ForceSendFields is a list of field names (e.g. "HttpHeader") to 3423 // unconditionally include in API requests. By default, fields with 3424 // empty or default values are omitted from API requests. However, any 3425 // non-pointer, non-interface field appearing in ForceSendFields will be 3426 // sent to the server regardless of whether the field is empty or not. 3427 // This may be used to include empty fields in Patch requests. 3428 ForceSendFields []string `json:"-"` 3429 3430 // NullFields is a list of field names (e.g. "HttpHeader") to include in 3431 // API requests with the JSON null value. By default, fields with empty 3432 // values are omitted from API requests. However, any field with an 3433 // empty value appearing in NullFields will be sent to the server as 3434 // null. It is an error if a field in this list has a non-empty value. 3435 // This may be used to include null fields in Patch requests. 3436 NullFields []string `json:"-"` 3437} 3438 3439func (s *SystemParameter) MarshalJSON() ([]byte, error) { 3440 type NoMethod SystemParameter 3441 raw := NoMethod(*s) 3442 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3443} 3444 3445// SystemParameterRule: Define a system parameter rule mapping system 3446// parameter definitions to methods. 3447type SystemParameterRule struct { 3448 // Parameters: Define parameters. Multiple names may be defined for a 3449 // parameter. For a given method call, only one of them should be used. 3450 // If multiple names are used the behavior is implementation-dependent. 3451 // If none of the specified names are present the behavior is 3452 // parameter-dependent. 3453 Parameters []*SystemParameter `json:"parameters,omitempty"` 3454 3455 // Selector: Selects the methods to which this rule applies. Use '*' to 3456 // indicate all methods in all APIs. Refer to selector for syntax 3457 // details. 3458 Selector string `json:"selector,omitempty"` 3459 3460 // ForceSendFields is a list of field names (e.g. "Parameters") to 3461 // unconditionally include in API requests. By default, fields with 3462 // empty or default values are omitted from API requests. However, any 3463 // non-pointer, non-interface field appearing in ForceSendFields will be 3464 // sent to the server regardless of whether the field is empty or not. 3465 // This may be used to include empty fields in Patch requests. 3466 ForceSendFields []string `json:"-"` 3467 3468 // NullFields is a list of field names (e.g. "Parameters") to include in 3469 // API requests with the JSON null value. By default, fields with empty 3470 // values are omitted from API requests. However, any field with an 3471 // empty value appearing in NullFields will be sent to the server as 3472 // null. It is an error if a field in this list has a non-empty value. 3473 // This may be used to include null fields in Patch requests. 3474 NullFields []string `json:"-"` 3475} 3476 3477func (s *SystemParameterRule) MarshalJSON() ([]byte, error) { 3478 type NoMethod SystemParameterRule 3479 raw := NoMethod(*s) 3480 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3481} 3482 3483// SystemParameters: ### System parameter configuration A system 3484// parameter is a special kind of parameter defined by the API system, 3485// not by an individual API. It is typically mapped to an HTTP header 3486// and/or a URL query parameter. This configuration specifies which 3487// methods change the names of the system parameters. 3488type SystemParameters struct { 3489 // Rules: Define system parameters. The parameters defined here will 3490 // override the default parameters implemented by the system. If this 3491 // field is missing from the service config, default system parameters 3492 // will be used. Default system parameters and names is 3493 // implementation-dependent. Example: define api key for all methods 3494 // system_parameters rules: - selector: "*" parameters: - name: api_key 3495 // url_query_parameter: api_key Example: define 2 api key names for a 3496 // specific method. system_parameters rules: - selector: "/ListShelves" 3497 // parameters: - name: api_key http_header: Api-Key1 - name: api_key 3498 // http_header: Api-Key2 **NOTE:** All service configuration rules 3499 // follow "last one wins" order. 3500 Rules []*SystemParameterRule `json:"rules,omitempty"` 3501 3502 // ForceSendFields is a list of field names (e.g. "Rules") to 3503 // unconditionally include in API requests. By default, fields with 3504 // empty or default values are omitted from API requests. However, any 3505 // non-pointer, non-interface field appearing in ForceSendFields will be 3506 // sent to the server regardless of whether the field is empty or not. 3507 // This may be used to include empty fields in Patch requests. 3508 ForceSendFields []string `json:"-"` 3509 3510 // NullFields is a list of field names (e.g. "Rules") to include in API 3511 // requests with the JSON null value. By default, fields with empty 3512 // values are omitted from API requests. However, any field with an 3513 // empty value appearing in NullFields will be sent to the server as 3514 // null. It is an error if a field in this list has a non-empty value. 3515 // This may be used to include null fields in Patch requests. 3516 NullFields []string `json:"-"` 3517} 3518 3519func (s *SystemParameters) MarshalJSON() ([]byte, error) { 3520 type NoMethod SystemParameters 3521 raw := NoMethod(*s) 3522 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3523} 3524 3525// TenancyUnit: Representation of a tenancy unit. 3526type TenancyUnit struct { 3527 // Consumer: Output only. @OutputOnly Cloud resource name of the 3528 // consumer of this service. For example 'projects/123456'. 3529 Consumer string `json:"consumer,omitempty"` 3530 3531 // CreateTime: Output only. @OutputOnly The time this tenancy unit was 3532 // created. 3533 CreateTime string `json:"createTime,omitempty"` 3534 3535 // Name: Globally unique identifier of this tenancy unit 3536 // "services/{service}/{collection id}/{resource 3537 // id}/tenancyUnits/{unit}" 3538 Name string `json:"name,omitempty"` 3539 3540 // Service: Output only. Google Cloud API name of the managed service 3541 // owning this tenancy unit. For example 3542 // 'serviceconsumermanagement.googleapis.com'. 3543 Service string `json:"service,omitempty"` 3544 3545 // TenantResources: Resources constituting the tenancy unit. There can 3546 // be at most 512 tenant resources in a tenancy unit. 3547 TenantResources []*TenantResource `json:"tenantResources,omitempty"` 3548 3549 // ServerResponse contains the HTTP response code and headers from the 3550 // server. 3551 googleapi.ServerResponse `json:"-"` 3552 3553 // ForceSendFields is a list of field names (e.g. "Consumer") to 3554 // unconditionally include in API requests. By default, fields with 3555 // empty or default values are omitted from API requests. However, any 3556 // non-pointer, non-interface field appearing in ForceSendFields will be 3557 // sent to the server regardless of whether the field is empty or not. 3558 // This may be used to include empty fields in Patch requests. 3559 ForceSendFields []string `json:"-"` 3560 3561 // NullFields is a list of field names (e.g. "Consumer") to include in 3562 // API requests with the JSON null value. By default, fields with empty 3563 // values are omitted from API requests. However, any field with an 3564 // empty value appearing in NullFields will be sent to the server as 3565 // null. It is an error if a field in this list has a non-empty value. 3566 // This may be used to include null fields in Patch requests. 3567 NullFields []string `json:"-"` 3568} 3569 3570func (s *TenancyUnit) MarshalJSON() ([]byte, error) { 3571 type NoMethod TenancyUnit 3572 raw := NoMethod(*s) 3573 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3574} 3575 3576// TenantProjectConfig: This structure defines a tenant project to be 3577// added to the specified tenancy unit and its initial configuration and 3578// properties. A project lien is created for the tenant project to 3579// prevent the tenant project from being deleted accidentally. The lien 3580// is deleted as part of tenant project removal. 3581type TenantProjectConfig struct { 3582 // BillingConfig: Billing account properties. The billing account must 3583 // be specified. 3584 BillingConfig *BillingConfig `json:"billingConfig,omitempty"` 3585 3586 // Folder: Folder where project in this tenancy unit must be located 3587 // This folder must have been previously created with the required 3588 // permissions for the caller to create and configure a project in it. 3589 // Valid folder resource names have the format `folders/{folder_number}` 3590 // (for example, `folders/123456`). 3591 Folder string `json:"folder,omitempty"` 3592 3593 // Labels: Labels that are applied to this project. 3594 Labels map[string]string `json:"labels,omitempty"` 3595 3596 // ServiceAccountConfig: Configuration for the IAM service account on 3597 // the tenant project. 3598 ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty"` 3599 3600 // Services: Google Cloud API names of services that are activated on 3601 // this project during provisioning. If any of these services can't be 3602 // activated, the request fails. For example: 3603 // 'compute.googleapis.com','cloudfunctions.googleapis.com' 3604 Services []string `json:"services,omitempty"` 3605 3606 // TenantProjectPolicy: Describes ownership and policies for the new 3607 // tenant project. Required. 3608 TenantProjectPolicy *TenantProjectPolicy `json:"tenantProjectPolicy,omitempty"` 3609 3610 // ForceSendFields is a list of field names (e.g. "BillingConfig") to 3611 // unconditionally include in API requests. By default, fields with 3612 // empty or default values are omitted from API requests. However, any 3613 // non-pointer, non-interface field appearing in ForceSendFields will be 3614 // sent to the server regardless of whether the field is empty or not. 3615 // This may be used to include empty fields in Patch requests. 3616 ForceSendFields []string `json:"-"` 3617 3618 // NullFields is a list of field names (e.g. "BillingConfig") to include 3619 // in API requests with the JSON null value. By default, fields with 3620 // empty values are omitted from API requests. However, any field with 3621 // an empty value appearing in NullFields will be sent to the server as 3622 // null. It is an error if a field in this list has a non-empty value. 3623 // This may be used to include null fields in Patch requests. 3624 NullFields []string `json:"-"` 3625} 3626 3627func (s *TenantProjectConfig) MarshalJSON() ([]byte, error) { 3628 type NoMethod TenantProjectConfig 3629 raw := NoMethod(*s) 3630 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3631} 3632 3633// TenantProjectPolicy: Describes policy settings that need to be 3634// applied to a newly created tenant project. 3635type TenantProjectPolicy struct { 3636 // PolicyBindings: Policy bindings to be applied to the tenant project, 3637 // in addition to the 'roles/owner' role granted to the Service Consumer 3638 // Management service account. At least one binding must have the role 3639 // `roles/owner`. 3640 PolicyBindings []*PolicyBinding `json:"policyBindings,omitempty"` 3641 3642 // ForceSendFields is a list of field names (e.g. "PolicyBindings") to 3643 // unconditionally include in API requests. By default, fields with 3644 // empty or default values are omitted from API requests. However, any 3645 // non-pointer, non-interface field appearing in ForceSendFields will be 3646 // sent to the server regardless of whether the field is empty or not. 3647 // This may be used to include empty fields in Patch requests. 3648 ForceSendFields []string `json:"-"` 3649 3650 // NullFields is a list of field names (e.g. "PolicyBindings") to 3651 // include in API requests with the JSON null value. By default, fields 3652 // with empty values are omitted from API requests. However, any field 3653 // with an empty value appearing in NullFields will be sent to the 3654 // server as null. It is an error if a field in this list has a 3655 // non-empty value. This may be used to include null fields in Patch 3656 // requests. 3657 NullFields []string `json:"-"` 3658} 3659 3660func (s *TenantProjectPolicy) MarshalJSON() ([]byte, error) { 3661 type NoMethod TenantProjectPolicy 3662 raw := NoMethod(*s) 3663 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3664} 3665 3666// TenantResource: Resource constituting the TenancyUnit. 3667type TenantResource struct { 3668 // Resource: Output only. @OutputOnly Identifier of the tenant resource. 3669 // For cloud projects, it is in the form 'projects/{number}'. For 3670 // example 'projects/123456'. 3671 Resource string `json:"resource,omitempty"` 3672 3673 // Status: Status of tenant resource. 3674 // 3675 // Possible values: 3676 // "STATUS_UNSPECIFIED" - Unspecified status is the default unset 3677 // value. 3678 // "PENDING_CREATE" - Creation of the tenant resource is ongoing. 3679 // "ACTIVE" - Active resource. 3680 // "PENDING_DELETE" - Deletion of the resource is ongoing. 3681 // "FAILED" - Tenant resource creation or deletion has failed. 3682 // "DELETED" - Tenant resource has been deleted. 3683 Status string `json:"status,omitempty"` 3684 3685 // Tag: Unique per single tenancy unit. 3686 Tag string `json:"tag,omitempty"` 3687 3688 // ForceSendFields is a list of field names (e.g. "Resource") to 3689 // unconditionally include in API requests. By default, fields with 3690 // empty or default values are omitted from API requests. However, any 3691 // non-pointer, non-interface field appearing in ForceSendFields will be 3692 // sent to the server regardless of whether the field is empty or not. 3693 // This may be used to include empty fields in Patch requests. 3694 ForceSendFields []string `json:"-"` 3695 3696 // NullFields is a list of field names (e.g. "Resource") to include in 3697 // API requests with the JSON null value. By default, fields with empty 3698 // values are omitted from API requests. However, any field with an 3699 // empty value appearing in NullFields will be sent to the server as 3700 // null. It is an error if a field in this list has a non-empty value. 3701 // This may be used to include null fields in Patch requests. 3702 NullFields []string `json:"-"` 3703} 3704 3705func (s *TenantResource) MarshalJSON() ([]byte, error) { 3706 type NoMethod TenantResource 3707 raw := NoMethod(*s) 3708 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3709} 3710 3711// Type: A protocol buffer message type. 3712type Type struct { 3713 // Fields: The list of fields. 3714 Fields []*Field `json:"fields,omitempty"` 3715 3716 // Name: The fully qualified message name. 3717 Name string `json:"name,omitempty"` 3718 3719 // Oneofs: The list of types appearing in `oneof` definitions in this 3720 // type. 3721 Oneofs []string `json:"oneofs,omitempty"` 3722 3723 // Options: The protocol buffer options. 3724 Options []*Option `json:"options,omitempty"` 3725 3726 // SourceContext: The source context. 3727 SourceContext *SourceContext `json:"sourceContext,omitempty"` 3728 3729 // Syntax: The source syntax. 3730 // 3731 // Possible values: 3732 // "SYNTAX_PROTO2" - Syntax `proto2`. 3733 // "SYNTAX_PROTO3" - Syntax `proto3`. 3734 Syntax string `json:"syntax,omitempty"` 3735 3736 // ForceSendFields is a list of field names (e.g. "Fields") to 3737 // unconditionally include in API requests. By default, fields with 3738 // empty or default values are omitted from API requests. However, any 3739 // non-pointer, non-interface field appearing in ForceSendFields will be 3740 // sent to the server regardless of whether the field is empty or not. 3741 // This may be used to include empty fields in Patch requests. 3742 ForceSendFields []string `json:"-"` 3743 3744 // NullFields is a list of field names (e.g. "Fields") to include in API 3745 // requests with the JSON null value. By default, fields with empty 3746 // values are omitted from API requests. However, any field with an 3747 // empty value appearing in NullFields will be sent to the server as 3748 // null. It is an error if a field in this list has a non-empty value. 3749 // This may be used to include null fields in Patch requests. 3750 NullFields []string `json:"-"` 3751} 3752 3753func (s *Type) MarshalJSON() ([]byte, error) { 3754 type NoMethod Type 3755 raw := NoMethod(*s) 3756 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3757} 3758 3759// UndeleteTenantProjectRequest: Request message to undelete tenant 3760// project resource previously deleted from the tenancy unit. 3761type UndeleteTenantProjectRequest struct { 3762 // Tag: Required. Tag of the resource within the tenancy unit. 3763 Tag string `json:"tag,omitempty"` 3764 3765 // ForceSendFields is a list of field names (e.g. "Tag") to 3766 // unconditionally include in API requests. By default, fields with 3767 // empty or default values are omitted from API requests. However, any 3768 // non-pointer, non-interface field appearing in ForceSendFields will be 3769 // sent to the server regardless of whether the field is empty or not. 3770 // This may be used to include empty fields in Patch requests. 3771 ForceSendFields []string `json:"-"` 3772 3773 // NullFields is a list of field names (e.g. "Tag") to include in API 3774 // requests with the JSON null value. By default, fields with empty 3775 // values are omitted from API requests. However, any field with an 3776 // empty value appearing in NullFields will be sent to the server as 3777 // null. It is an error if a field in this list has a non-empty value. 3778 // This may be used to include null fields in Patch requests. 3779 NullFields []string `json:"-"` 3780} 3781 3782func (s *UndeleteTenantProjectRequest) MarshalJSON() ([]byte, error) { 3783 type NoMethod UndeleteTenantProjectRequest 3784 raw := NoMethod(*s) 3785 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3786} 3787 3788// Usage: Configuration controlling usage of a service. 3789type Usage struct { 3790 // ProducerNotificationChannel: The full resource name of a channel used 3791 // for sending notifications to the service producer. Google Service 3792 // Management currently only supports Google Cloud Pub/Sub 3793 // (https://cloud.google.com/pubsub) as a notification channel. To use 3794 // Google Cloud Pub/Sub as the channel, this must be the name of a Cloud 3795 // Pub/Sub topic that uses the Cloud Pub/Sub topic name format 3796 // documented in https://cloud.google.com/pubsub/docs/overview. 3797 ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"` 3798 3799 // Requirements: Requirements that must be satisfied before a consumer 3800 // project can use the service. Each requirement is of the form /; for 3801 // example 'serviceusage.googleapis.com/billing-enabled'. For Google 3802 // APIs, a Terms of Service requirement must be included here. Google 3803 // Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". 3804 // Other Google APIs should include 3805 // "serviceusage.googleapis.com/tos/universal". Additional ToS can be 3806 // included based on the business needs. 3807 Requirements []string `json:"requirements,omitempty"` 3808 3809 // Rules: A list of usage rules that apply to individual API methods. 3810 // **NOTE:** All service configuration rules follow "last one wins" 3811 // order. 3812 Rules []*UsageRule `json:"rules,omitempty"` 3813 3814 // ForceSendFields is a list of field names (e.g. 3815 // "ProducerNotificationChannel") to unconditionally include in API 3816 // requests. By default, fields with empty or default values are omitted 3817 // from API requests. However, any non-pointer, non-interface field 3818 // appearing in ForceSendFields will be sent to the server regardless of 3819 // whether the field is empty or not. This may be used to include empty 3820 // fields in Patch requests. 3821 ForceSendFields []string `json:"-"` 3822 3823 // NullFields is a list of field names (e.g. 3824 // "ProducerNotificationChannel") to include in API requests with the 3825 // JSON null value. By default, fields with empty values are omitted 3826 // from API requests. However, any field with an empty value appearing 3827 // in NullFields will be sent to the server as null. It is an error if a 3828 // field in this list has a non-empty value. This may be used to include 3829 // null fields in Patch requests. 3830 NullFields []string `json:"-"` 3831} 3832 3833func (s *Usage) MarshalJSON() ([]byte, error) { 3834 type NoMethod Usage 3835 raw := NoMethod(*s) 3836 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3837} 3838 3839// UsageRule: Usage configuration rules for the service. NOTE: Under 3840// development. Use this rule to configure unregistered calls for the 3841// service. Unregistered calls are calls that do not contain consumer 3842// project identity. (Example: calls that do not contain an API key). By 3843// default, API methods do not allow unregistered calls, and each method 3844// call must be identified by a consumer project identity. Use this rule 3845// to allow/disallow unregistered calls. Example of an API that wants to 3846// allow unregistered calls for entire service. usage: rules: - 3847// selector: "*" allow_unregistered_calls: true Example of a method that 3848// wants to allow unregistered calls. usage: rules: - selector: 3849// "google.example.library.v1.LibraryService.CreateBook" 3850// allow_unregistered_calls: true 3851type UsageRule struct { 3852 // AllowUnregisteredCalls: If true, the selected method allows 3853 // unregistered calls, e.g. calls that don't identify any user or 3854 // application. 3855 AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"` 3856 3857 // Selector: Selects the methods to which this rule applies. Use '*' to 3858 // indicate all methods in all APIs. Refer to selector for syntax 3859 // details. 3860 Selector string `json:"selector,omitempty"` 3861 3862 // SkipServiceControl: If true, the selected method should skip service 3863 // control and the control plane features, such as quota and billing, 3864 // will not be available. This flag is used by Google Cloud Endpoints to 3865 // bypass checks for internal methods, such as service health check 3866 // methods. 3867 SkipServiceControl bool `json:"skipServiceControl,omitempty"` 3868 3869 // ForceSendFields is a list of field names (e.g. 3870 // "AllowUnregisteredCalls") to unconditionally include in API requests. 3871 // By default, fields with empty or default values are omitted from API 3872 // requests. However, any non-pointer, non-interface field appearing in 3873 // ForceSendFields will be sent to the server regardless of whether the 3874 // field is empty or not. This may be used to include empty fields in 3875 // Patch requests. 3876 ForceSendFields []string `json:"-"` 3877 3878 // NullFields is a list of field names (e.g. "AllowUnregisteredCalls") 3879 // to include in API requests with the JSON null value. By default, 3880 // fields with empty values are omitted from API requests. However, any 3881 // field with an empty value appearing in NullFields will be sent to the 3882 // server as null. It is an error if a field in this list has a 3883 // non-empty value. This may be used to include null fields in Patch 3884 // requests. 3885 NullFields []string `json:"-"` 3886} 3887 3888func (s *UsageRule) MarshalJSON() ([]byte, error) { 3889 type NoMethod UsageRule 3890 raw := NoMethod(*s) 3891 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3892} 3893 3894// V1AddVisibilityLabelsResponse: Response message for the 3895// `AddVisibilityLabels` method. This response message is assigned to 3896// the `response` field of the returned Operation when that operation is 3897// done. 3898type V1AddVisibilityLabelsResponse struct { 3899 // Labels: The updated set of visibility labels for this consumer on 3900 // this service. 3901 Labels []string `json:"labels,omitempty"` 3902 3903 // ForceSendFields is a list of field names (e.g. "Labels") to 3904 // unconditionally include in API requests. By default, fields with 3905 // empty or default values are omitted from API requests. However, any 3906 // non-pointer, non-interface field appearing in ForceSendFields will be 3907 // sent to the server regardless of whether the field is empty or not. 3908 // This may be used to include empty fields in Patch requests. 3909 ForceSendFields []string `json:"-"` 3910 3911 // NullFields is a list of field names (e.g. "Labels") to include in API 3912 // requests with the JSON null value. By default, fields with empty 3913 // values are omitted from API requests. However, any field with an 3914 // empty value appearing in NullFields will be sent to the server as 3915 // null. It is an error if a field in this list has a non-empty value. 3916 // This may be used to include null fields in Patch requests. 3917 NullFields []string `json:"-"` 3918} 3919 3920func (s *V1AddVisibilityLabelsResponse) MarshalJSON() ([]byte, error) { 3921 type NoMethod V1AddVisibilityLabelsResponse 3922 raw := NoMethod(*s) 3923 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3924} 3925 3926// V1Beta1BatchCreateProducerOverridesResponse: Response message for 3927// BatchCreateProducerOverrides 3928type V1Beta1BatchCreateProducerOverridesResponse struct { 3929 // Overrides: The overrides that were created. 3930 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 3931 3932 // ForceSendFields is a list of field names (e.g. "Overrides") to 3933 // unconditionally include in API requests. By default, fields with 3934 // empty or default values are omitted from API requests. However, any 3935 // non-pointer, non-interface field appearing in ForceSendFields will be 3936 // sent to the server regardless of whether the field is empty or not. 3937 // This may be used to include empty fields in Patch requests. 3938 ForceSendFields []string `json:"-"` 3939 3940 // NullFields is a list of field names (e.g. "Overrides") to include in 3941 // API requests with the JSON null value. By default, fields with empty 3942 // values are omitted from API requests. However, any field with an 3943 // empty value appearing in NullFields will be sent to the server as 3944 // null. It is an error if a field in this list has a non-empty value. 3945 // This may be used to include null fields in Patch requests. 3946 NullFields []string `json:"-"` 3947} 3948 3949func (s *V1Beta1BatchCreateProducerOverridesResponse) MarshalJSON() ([]byte, error) { 3950 type NoMethod V1Beta1BatchCreateProducerOverridesResponse 3951 raw := NoMethod(*s) 3952 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3953} 3954 3955// V1Beta1DisableConsumerResponse: Response message for the 3956// `DisableConsumer` method. This response message is assigned to the 3957// `response` field of the returned Operation when that operation is 3958// done. 3959type V1Beta1DisableConsumerResponse struct { 3960} 3961 3962// V1Beta1EnableConsumerResponse: Response message for the 3963// `EnableConsumer` method. This response message is assigned to the 3964// `response` field of the returned Operation when that operation is 3965// done. 3966type V1Beta1EnableConsumerResponse struct { 3967} 3968 3969// V1Beta1GenerateServiceIdentityResponse: Response message for the 3970// `GenerateServiceIdentity` method. This response message is assigned 3971// to the `response` field of the returned Operation when that operation 3972// is done. 3973type V1Beta1GenerateServiceIdentityResponse struct { 3974 // Identity: ServiceIdentity that was created or retrieved. 3975 Identity *V1Beta1ServiceIdentity `json:"identity,omitempty"` 3976 3977 // ForceSendFields is a list of field names (e.g. "Identity") to 3978 // unconditionally include in API requests. By default, fields with 3979 // empty or default values are omitted from API requests. However, any 3980 // non-pointer, non-interface field appearing in ForceSendFields will be 3981 // sent to the server regardless of whether the field is empty or not. 3982 // This may be used to include empty fields in Patch requests. 3983 ForceSendFields []string `json:"-"` 3984 3985 // NullFields is a list of field names (e.g. "Identity") to include in 3986 // API requests with the JSON null value. By default, fields with empty 3987 // values are omitted from API requests. However, any field with an 3988 // empty value appearing in NullFields will be sent to the server as 3989 // null. It is an error if a field in this list has a non-empty value. 3990 // This may be used to include null fields in Patch requests. 3991 NullFields []string `json:"-"` 3992} 3993 3994func (s *V1Beta1GenerateServiceIdentityResponse) MarshalJSON() ([]byte, error) { 3995 type NoMethod V1Beta1GenerateServiceIdentityResponse 3996 raw := NoMethod(*s) 3997 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3998} 3999 4000// V1Beta1ImportProducerOverridesResponse: Response message for 4001// ImportProducerOverrides 4002type V1Beta1ImportProducerOverridesResponse struct { 4003 // Overrides: The overrides that were created from the imported data. 4004 Overrides []*V1Beta1QuotaOverride `json:"overrides,omitempty"` 4005 4006 // ForceSendFields is a list of field names (e.g. "Overrides") to 4007 // unconditionally include in API requests. By default, fields with 4008 // empty or default values are omitted from API requests. However, any 4009 // non-pointer, non-interface field appearing in ForceSendFields will be 4010 // sent to the server regardless of whether the field is empty or not. 4011 // This may be used to include empty fields in Patch requests. 4012 ForceSendFields []string `json:"-"` 4013 4014 // NullFields is a list of field names (e.g. "Overrides") to include in 4015 // API requests with the JSON null value. By default, fields with empty 4016 // values are omitted from API requests. However, any field with an 4017 // empty value appearing in NullFields will be sent to the server as 4018 // null. It is an error if a field in this list has a non-empty value. 4019 // This may be used to include null fields in Patch requests. 4020 NullFields []string `json:"-"` 4021} 4022 4023func (s *V1Beta1ImportProducerOverridesResponse) MarshalJSON() ([]byte, error) { 4024 type NoMethod V1Beta1ImportProducerOverridesResponse 4025 raw := NoMethod(*s) 4026 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4027} 4028 4029// V1Beta1ImportProducerQuotaPoliciesResponse: Response message for 4030// ImportProducerQuotaPolicies 4031type V1Beta1ImportProducerQuotaPoliciesResponse struct { 4032 // Policies: The policies that were created from the imported data. 4033 Policies []*V1Beta1ProducerQuotaPolicy `json:"policies,omitempty"` 4034 4035 // ForceSendFields is a list of field names (e.g. "Policies") to 4036 // unconditionally include in API requests. By default, fields with 4037 // empty or default values are omitted from API requests. However, any 4038 // non-pointer, non-interface field appearing in ForceSendFields will be 4039 // sent to the server regardless of whether the field is empty or not. 4040 // This may be used to include empty fields in Patch requests. 4041 ForceSendFields []string `json:"-"` 4042 4043 // NullFields is a list of field names (e.g. "Policies") to include in 4044 // API requests with the JSON null value. By default, fields with empty 4045 // values are omitted from API requests. However, any field with an 4046 // empty value appearing in NullFields will be sent to the server as 4047 // null. It is an error if a field in this list has a non-empty value. 4048 // This may be used to include null fields in Patch requests. 4049 NullFields []string `json:"-"` 4050} 4051 4052func (s *V1Beta1ImportProducerQuotaPoliciesResponse) MarshalJSON() ([]byte, error) { 4053 type NoMethod V1Beta1ImportProducerQuotaPoliciesResponse 4054 raw := NoMethod(*s) 4055 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4056} 4057 4058// V1Beta1ProducerQuotaPolicy: Quota policy created by service producer. 4059type V1Beta1ProducerQuotaPolicy struct { 4060 // Container: The cloud resource container at which the quota policy is 4061 // created. The format is {container_type}/{container_number} 4062 Container string `json:"container,omitempty"` 4063 4064 // Dimensions: If this map is nonempty, then this policy applies only 4065 // to specific values for dimensions defined in the limit unit. For 4066 // example, an policy on a limit with the unit 1/{project}/{region} 4067 // could contain an entry with the key "region" and the value 4068 // "us-east-1"; the policy is only applied to quota consumed in that 4069 // region. This map has the following restrictions: * Keys that are not 4070 // defined in the limit's unit are not valid keys. Any string appearing 4071 // in {brackets} in the unit (besides {project} or {user}) is a defined 4072 // key. * "project" is not a valid key; the project is already specified 4073 // in the parent resource name. * "user" is not a valid key; the API 4074 // does not support quota polcies that apply only to a specific user. * 4075 // If "region" appears as a key, its value must be a valid Cloud region. 4076 // * If "zone" appears as a key, its value must be a valid Cloud zone. * 4077 // If any valid key other than "region" or "zone" appears in the map, 4078 // then all valid keys other than "region" or "zone" must also appear in 4079 // the map. 4080 Dimensions map[string]string `json:"dimensions,omitempty"` 4081 4082 // Metric: The name of the metric to which this policy applies. An 4083 // example name would be: `compute.googleapis.com/cpus` 4084 Metric string `json:"metric,omitempty"` 4085 4086 // Name: The resource name of the producer policy. An example name would 4087 // be: 4088 // `services/compute.googleapis.com/organizations/123/consumerQuotaMetric 4089 // s/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerQuo 4090 // taPolicies/4a3f2c1d` 4091 Name string `json:"name,omitempty"` 4092 4093 // PolicyValue: The quota policy value. Can be any nonnegative integer, 4094 // or -1 (unlimited quota). 4095 PolicyValue int64 `json:"policyValue,omitempty,string"` 4096 4097 // Unit: The limit unit of the limit to which this policy applies. An 4098 // example unit would be: `1/{project}/{region}` Note that `{project}` 4099 // and `{region}` are not placeholders in this example; the literal 4100 // characters `{` and `}` occur in the string. 4101 Unit string `json:"unit,omitempty"` 4102 4103 // ForceSendFields is a list of field names (e.g. "Container") to 4104 // unconditionally include in API requests. By default, fields with 4105 // empty or default values are omitted from API requests. However, any 4106 // non-pointer, non-interface field appearing in ForceSendFields will be 4107 // sent to the server regardless of whether the field is empty or not. 4108 // This may be used to include empty fields in Patch requests. 4109 ForceSendFields []string `json:"-"` 4110 4111 // NullFields is a list of field names (e.g. "Container") to include in 4112 // API requests with the JSON null value. By default, fields with empty 4113 // values are omitted from API requests. However, any field with an 4114 // empty value appearing in NullFields will be sent to the server as 4115 // null. It is an error if a field in this list has a non-empty value. 4116 // This may be used to include null fields in Patch requests. 4117 NullFields []string `json:"-"` 4118} 4119 4120func (s *V1Beta1ProducerQuotaPolicy) MarshalJSON() ([]byte, error) { 4121 type NoMethod V1Beta1ProducerQuotaPolicy 4122 raw := NoMethod(*s) 4123 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4124} 4125 4126// V1Beta1QuotaOverride: A quota override 4127type V1Beta1QuotaOverride struct { 4128 // AdminOverrideAncestor: The resource name of the ancestor that 4129 // requested the override. For example: "organizations/12345" or 4130 // "folders/67890". Used by admin overrides only. 4131 AdminOverrideAncestor string `json:"adminOverrideAncestor,omitempty"` 4132 4133 // Dimensions: If this map is nonempty, then this override applies only 4134 // to specific values for dimensions defined in the limit unit. For 4135 // example, an override on a limit with the unit 1/{project}/{region} 4136 // could contain an entry with the key "region" and the value 4137 // "us-east-1"; the override is only applied to quota consumed in that 4138 // region. This map has the following restrictions: * Keys that are not 4139 // defined in the limit's unit are not valid keys. Any string appearing 4140 // in {brackets} in the unit (besides {project} or {user}) is a defined 4141 // key. * "project" is not a valid key; the project is already specified 4142 // in the parent resource name. * "user" is not a valid key; the API 4143 // does not support quota overrides that apply only to a specific user. 4144 // * If "region" appears as a key, its value must be a valid Cloud 4145 // region. * If "zone" appears as a key, its value must be a valid Cloud 4146 // zone. * If any valid key other than "region" or "zone" appears in the 4147 // map, then all valid keys other than "region" or "zone" must also 4148 // appear in the map. 4149 Dimensions map[string]string `json:"dimensions,omitempty"` 4150 4151 // Metric: The name of the metric to which this override applies. An 4152 // example name would be: `compute.googleapis.com/cpus` 4153 Metric string `json:"metric,omitempty"` 4154 4155 // Name: The resource name of the producer override. An example name 4156 // would be: 4157 // `services/compute.googleapis.com/projects/123/consumerQuotaMetrics/com 4158 // pute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/producerOverride 4159 // s/4a3f2c1d` 4160 Name string `json:"name,omitempty"` 4161 4162 // OverrideValue: The overriding quota limit value. Can be any 4163 // nonnegative integer, or -1 (unlimited quota). 4164 OverrideValue int64 `json:"overrideValue,omitempty,string"` 4165 4166 // Unit: The limit unit of the limit to which this override applies. An 4167 // example unit would be: `1/{project}/{region}` Note that `{project}` 4168 // and `{region}` are not placeholders in this example; the literal 4169 // characters `{` and `}` occur in the string. 4170 Unit string `json:"unit,omitempty"` 4171 4172 // ForceSendFields is a list of field names (e.g. 4173 // "AdminOverrideAncestor") to unconditionally include in API requests. 4174 // By default, fields with empty or default values are omitted from API 4175 // requests. However, any non-pointer, non-interface field appearing in 4176 // ForceSendFields will be sent to the server regardless of whether the 4177 // field is empty or not. This may be used to include empty fields in 4178 // Patch requests. 4179 ForceSendFields []string `json:"-"` 4180 4181 // NullFields is a list of field names (e.g. "AdminOverrideAncestor") to 4182 // include in API requests with the JSON null value. By default, fields 4183 // with empty values are omitted from API requests. However, any field 4184 // with an empty value appearing in NullFields will be sent to the 4185 // server as null. It is an error if a field in this list has a 4186 // non-empty value. This may be used to include null fields in Patch 4187 // requests. 4188 NullFields []string `json:"-"` 4189} 4190 4191func (s *V1Beta1QuotaOverride) MarshalJSON() ([]byte, error) { 4192 type NoMethod V1Beta1QuotaOverride 4193 raw := NoMethod(*s) 4194 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4195} 4196 4197// V1Beta1RefreshConsumerResponse: Response message for the 4198// `RefreshConsumer` method. This response message is assigned to the 4199// `response` field of the returned Operation when that operation is 4200// done. 4201type V1Beta1RefreshConsumerResponse struct { 4202} 4203 4204// V1Beta1ServiceIdentity: A service identity in the Identity and Access 4205// Management API. 4206type V1Beta1ServiceIdentity struct { 4207 // Email: The email address of the service identity. 4208 Email string `json:"email,omitempty"` 4209 4210 // Name: P4 service identity resource name. An example name would be: 4211 // `services/serviceconsumermanagement.googleapis.com/projects/123/servic 4212 // eIdentities/default` 4213 Name string `json:"name,omitempty"` 4214 4215 // Tag: The P4 service identity configuration tag. This must be defined 4216 // in activation_grants. If not specified when creating the account, the 4217 // tag is set to "default". 4218 Tag string `json:"tag,omitempty"` 4219 4220 // UniqueId: The unique and stable id of the service identity. 4221 UniqueId string `json:"uniqueId,omitempty"` 4222 4223 // ForceSendFields is a list of field names (e.g. "Email") to 4224 // unconditionally include in API requests. By default, fields with 4225 // empty or default values are omitted from API requests. However, any 4226 // non-pointer, non-interface field appearing in ForceSendFields will be 4227 // sent to the server regardless of whether the field is empty or not. 4228 // This may be used to include empty fields in Patch requests. 4229 ForceSendFields []string `json:"-"` 4230 4231 // NullFields is a list of field names (e.g. "Email") to include in API 4232 // requests with the JSON null value. By default, fields with empty 4233 // values are omitted from API requests. However, any field with an 4234 // empty value appearing in NullFields will be sent to the server as 4235 // null. It is an error if a field in this list has a non-empty value. 4236 // This may be used to include null fields in Patch requests. 4237 NullFields []string `json:"-"` 4238} 4239 4240func (s *V1Beta1ServiceIdentity) MarshalJSON() ([]byte, error) { 4241 type NoMethod V1Beta1ServiceIdentity 4242 raw := NoMethod(*s) 4243 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4244} 4245 4246// V1DefaultIdentity: A default identity in the Identity and Access 4247// Management API. 4248type V1DefaultIdentity struct { 4249 // Email: The email address of the default identity. 4250 Email string `json:"email,omitempty"` 4251 4252 // Name: Default identity resource name. An example name would be: 4253 // `services/serviceconsumermanagement.googleapis.com/projects/123/defaul 4254 // tIdentity` 4255 Name string `json:"name,omitempty"` 4256 4257 // Tag: The Default Identity tag. If specified when creating the 4258 // account, the tag must be present in activation_grants. If not 4259 // specified when creating the account, the tag is set to the tag 4260 // specified in activation_grants. 4261 Tag string `json:"tag,omitempty"` 4262 4263 // UniqueId: The unique and stable id of the default identity. 4264 UniqueId string `json:"uniqueId,omitempty"` 4265 4266 // ForceSendFields is a list of field names (e.g. "Email") to 4267 // unconditionally include in API requests. By default, fields with 4268 // empty or default values are omitted from API requests. However, any 4269 // non-pointer, non-interface field appearing in ForceSendFields will be 4270 // sent to the server regardless of whether the field is empty or not. 4271 // This may be used to include empty fields in Patch requests. 4272 ForceSendFields []string `json:"-"` 4273 4274 // NullFields is a list of field names (e.g. "Email") to include in API 4275 // requests with the JSON null value. By default, fields with empty 4276 // values are omitted from API requests. However, any field with an 4277 // empty value appearing in NullFields will be sent to the server as 4278 // null. It is an error if a field in this list has a non-empty value. 4279 // This may be used to include null fields in Patch requests. 4280 NullFields []string `json:"-"` 4281} 4282 4283func (s *V1DefaultIdentity) MarshalJSON() ([]byte, error) { 4284 type NoMethod V1DefaultIdentity 4285 raw := NoMethod(*s) 4286 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4287} 4288 4289// V1DisableConsumerResponse: Response message for the `DisableConsumer` 4290// method. This response message is assigned to the `response` field of 4291// the returned Operation when that operation is done. 4292type V1DisableConsumerResponse struct { 4293} 4294 4295// V1EnableConsumerResponse: Response message for the `EnableConsumer` 4296// method. This response message is assigned to the `response` field of 4297// the returned Operation when that operation is done. 4298type V1EnableConsumerResponse struct { 4299} 4300 4301// V1GenerateDefaultIdentityResponse: Response message for the 4302// `GenerateDefaultIdentity` method. This response message is assigned 4303// to the `response` field of the returned Operation when that operation 4304// is done. 4305type V1GenerateDefaultIdentityResponse struct { 4306 // AttachStatus: Status of the role attachment. Under development 4307 // (go/si-attach-role), currently always return 4308 // ATTACH_STATUS_UNSPECIFIED) 4309 // 4310 // Possible values: 4311 // "ATTACH_STATUS_UNSPECIFIED" - Indicates that the AttachStatus was 4312 // not set. 4313 // "ATTACHED" - The default identity was attached to a role 4314 // successfully in this request. 4315 // "ATTACH_SKIPPED" - The request specified that no attempt should be 4316 // made to attach the role. 4317 // "PREVIOUSLY_ATTACHED" - Role was attached to the consumer project 4318 // at some point in time. Tenant manager doesn't make assertion about 4319 // the current state of the identity with respect to the consumer. Role 4320 // attachment should happen only once after activation and cannot be 4321 // reattached after customer removes it. (go/si-attach-role) 4322 // "ATTACH_DENIED_BY_ORG_POLICY" - Role attachment was denied in this 4323 // request by customer set org policy. (go/si-attach-role) 4324 AttachStatus string `json:"attachStatus,omitempty"` 4325 4326 // Identity: DefaultIdentity that was created or retrieved. 4327 Identity *V1DefaultIdentity `json:"identity,omitempty"` 4328 4329 // Role: Role attached to consumer project. Empty if not attached in 4330 // this request. (Under development, currently always return empty.) 4331 Role string `json:"role,omitempty"` 4332 4333 // ForceSendFields is a list of field names (e.g. "AttachStatus") to 4334 // unconditionally include in API requests. By default, fields with 4335 // empty or default values are omitted from API requests. However, any 4336 // non-pointer, non-interface field appearing in ForceSendFields will be 4337 // sent to the server regardless of whether the field is empty or not. 4338 // This may be used to include empty fields in Patch requests. 4339 ForceSendFields []string `json:"-"` 4340 4341 // NullFields is a list of field names (e.g. "AttachStatus") to include 4342 // in API requests with the JSON null value. By default, fields with 4343 // empty values are omitted from API requests. However, any field with 4344 // an empty value appearing in NullFields will be sent to the server as 4345 // null. It is an error if a field in this list has a non-empty value. 4346 // This may be used to include null fields in Patch requests. 4347 NullFields []string `json:"-"` 4348} 4349 4350func (s *V1GenerateDefaultIdentityResponse) MarshalJSON() ([]byte, error) { 4351 type NoMethod V1GenerateDefaultIdentityResponse 4352 raw := NoMethod(*s) 4353 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4354} 4355 4356// V1GenerateServiceAccountResponse: Response message for the 4357// `GenerateServiceAccount` method. This response message is assigned to 4358// the `response` field of the returned Operation when that operation is 4359// done. 4360type V1GenerateServiceAccountResponse struct { 4361 // Account: ServiceAccount that was created or retrieved. 4362 Account *V1ServiceAccount `json:"account,omitempty"` 4363 4364 // ForceSendFields is a list of field names (e.g. "Account") to 4365 // unconditionally include in API requests. By default, fields with 4366 // empty or default values are omitted from API requests. However, any 4367 // non-pointer, non-interface field appearing in ForceSendFields will be 4368 // sent to the server regardless of whether the field is empty or not. 4369 // This may be used to include empty fields in Patch requests. 4370 ForceSendFields []string `json:"-"` 4371 4372 // NullFields is a list of field names (e.g. "Account") to include in 4373 // API requests with the JSON null value. By default, fields with empty 4374 // values are omitted from API requests. However, any field with an 4375 // empty value appearing in NullFields will be sent to the server as 4376 // null. It is an error if a field in this list has a non-empty value. 4377 // This may be used to include null fields in Patch requests. 4378 NullFields []string `json:"-"` 4379} 4380 4381func (s *V1GenerateServiceAccountResponse) MarshalJSON() ([]byte, error) { 4382 type NoMethod V1GenerateServiceAccountResponse 4383 raw := NoMethod(*s) 4384 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4385} 4386 4387// V1RefreshConsumerResponse: Response message for the `RefreshConsumer` 4388// method. This response message is assigned to the `response` field of 4389// the returned Operation when that operation is done. 4390type V1RefreshConsumerResponse struct { 4391} 4392 4393// V1RemoveVisibilityLabelsResponse: Response message for the 4394// `RemoveVisibilityLabels` method. This response message is assigned to 4395// the `response` field of the returned Operation when that operation is 4396// done. 4397type V1RemoveVisibilityLabelsResponse struct { 4398 // Labels: The updated set of visibility labels for this consumer on 4399 // this service. 4400 Labels []string `json:"labels,omitempty"` 4401 4402 // ForceSendFields is a list of field names (e.g. "Labels") to 4403 // unconditionally include in API requests. By default, fields with 4404 // empty or default values are omitted from API requests. However, any 4405 // non-pointer, non-interface field appearing in ForceSendFields will be 4406 // sent to the server regardless of whether the field is empty or not. 4407 // This may be used to include empty fields in Patch requests. 4408 ForceSendFields []string `json:"-"` 4409 4410 // NullFields is a list of field names (e.g. "Labels") to include in API 4411 // requests with the JSON null value. By default, fields with empty 4412 // values are omitted from API requests. However, any field with an 4413 // empty value appearing in NullFields will be sent to the server as 4414 // null. It is an error if a field in this list has a non-empty value. 4415 // This may be used to include null fields in Patch requests. 4416 NullFields []string `json:"-"` 4417} 4418 4419func (s *V1RemoveVisibilityLabelsResponse) MarshalJSON() ([]byte, error) { 4420 type NoMethod V1RemoveVisibilityLabelsResponse 4421 raw := NoMethod(*s) 4422 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4423} 4424 4425// V1ServiceAccount: A service account in the Identity and Access 4426// Management API. 4427type V1ServiceAccount struct { 4428 // Email: The email address of the service account. 4429 Email string `json:"email,omitempty"` 4430 4431 // IamAccountName: Deprecated. See b/136209818. 4432 IamAccountName string `json:"iamAccountName,omitempty"` 4433 4434 // Name: P4 SA resource name. An example name would be: 4435 // `services/serviceconsumermanagement.googleapis.com/projects/123/servic 4436 // eAccounts/default` 4437 Name string `json:"name,omitempty"` 4438 4439 // Tag: The P4 SA configuration tag. This must be defined in 4440 // activation_grants. If not specified when creating the account, the 4441 // tag is set to "default". 4442 Tag string `json:"tag,omitempty"` 4443 4444 // UniqueId: The unique and stable id of the service account. 4445 UniqueId string `json:"uniqueId,omitempty"` 4446 4447 // ForceSendFields is a list of field names (e.g. "Email") to 4448 // unconditionally include in API requests. By default, fields with 4449 // empty or default values are omitted from API requests. However, any 4450 // non-pointer, non-interface field appearing in ForceSendFields will be 4451 // sent to the server regardless of whether the field is empty or not. 4452 // This may be used to include empty fields in Patch requests. 4453 ForceSendFields []string `json:"-"` 4454 4455 // NullFields is a list of field names (e.g. "Email") to include in API 4456 // requests with the JSON null value. By default, fields with empty 4457 // values are omitted from API requests. However, any field with an 4458 // empty value appearing in NullFields will be sent to the server as 4459 // null. It is an error if a field in this list has a non-empty value. 4460 // This may be used to include null fields in Patch requests. 4461 NullFields []string `json:"-"` 4462} 4463 4464func (s *V1ServiceAccount) MarshalJSON() ([]byte, error) { 4465 type NoMethod V1ServiceAccount 4466 raw := NoMethod(*s) 4467 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4468} 4469 4470// method id "serviceconsumermanagement.operations.cancel": 4471 4472type OperationsCancelCall struct { 4473 s *APIService 4474 name string 4475 canceloperationrequest *CancelOperationRequest 4476 urlParams_ gensupport.URLParams 4477 ctx_ context.Context 4478 header_ http.Header 4479} 4480 4481// Cancel: Starts asynchronous cancellation on a long-running operation. 4482// The server makes a best effort to cancel the operation, but success 4483// is not guaranteed. If the server doesn't support this method, it 4484// returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use 4485// Operations.GetOperation or other methods to check whether the 4486// cancellation succeeded or whether the operation completed despite 4487// cancellation. On successful cancellation, the operation is not 4488// deleted; instead, it becomes an operation with an Operation.error 4489// value with a google.rpc.Status.code of 1, corresponding to 4490// `Code.CANCELLED`. 4491// 4492// - name: The name of the operation resource to be cancelled. 4493func (r *OperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *OperationsCancelCall { 4494 c := &OperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4495 c.name = name 4496 c.canceloperationrequest = canceloperationrequest 4497 return c 4498} 4499 4500// Fields allows partial responses to be retrieved. See 4501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4502// for more information. 4503func (c *OperationsCancelCall) Fields(s ...googleapi.Field) *OperationsCancelCall { 4504 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4505 return c 4506} 4507 4508// Context sets the context to be used in this call's Do method. Any 4509// pending HTTP request will be aborted if the provided context is 4510// canceled. 4511func (c *OperationsCancelCall) Context(ctx context.Context) *OperationsCancelCall { 4512 c.ctx_ = ctx 4513 return c 4514} 4515 4516// Header returns an http.Header that can be modified by the caller to 4517// add HTTP headers to the request. 4518func (c *OperationsCancelCall) Header() http.Header { 4519 if c.header_ == nil { 4520 c.header_ = make(http.Header) 4521 } 4522 return c.header_ 4523} 4524 4525func (c *OperationsCancelCall) doRequest(alt string) (*http.Response, error) { 4526 reqHeaders := make(http.Header) 4527 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 4528 for k, v := range c.header_ { 4529 reqHeaders[k] = v 4530 } 4531 reqHeaders.Set("User-Agent", c.s.userAgent()) 4532 var body io.Reader = nil 4533 body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest) 4534 if err != nil { 4535 return nil, err 4536 } 4537 reqHeaders.Set("Content-Type", "application/json") 4538 c.urlParams_.Set("alt", alt) 4539 c.urlParams_.Set("prettyPrint", "false") 4540 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel") 4541 urls += "?" + c.urlParams_.Encode() 4542 req, err := http.NewRequest("POST", urls, body) 4543 if err != nil { 4544 return nil, err 4545 } 4546 req.Header = reqHeaders 4547 googleapi.Expand(req.URL, map[string]string{ 4548 "name": c.name, 4549 }) 4550 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4551} 4552 4553// Do executes the "serviceconsumermanagement.operations.cancel" call. 4554// Exactly one of *Empty or error will be non-nil. Any non-2xx status 4555// code is an error. Response headers are in either 4556// *Empty.ServerResponse.Header or (if a response was returned at all) 4557// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 4558// check whether the returned error was because http.StatusNotModified 4559// was returned. 4560func (c *OperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) { 4561 gensupport.SetOptions(c.urlParams_, opts...) 4562 res, err := c.doRequest("json") 4563 if res != nil && res.StatusCode == http.StatusNotModified { 4564 if res.Body != nil { 4565 res.Body.Close() 4566 } 4567 return nil, &googleapi.Error{ 4568 Code: res.StatusCode, 4569 Header: res.Header, 4570 } 4571 } 4572 if err != nil { 4573 return nil, err 4574 } 4575 defer googleapi.CloseBody(res) 4576 if err := googleapi.CheckResponse(res); err != nil { 4577 return nil, err 4578 } 4579 ret := &Empty{ 4580 ServerResponse: googleapi.ServerResponse{ 4581 Header: res.Header, 4582 HTTPStatusCode: res.StatusCode, 4583 }, 4584 } 4585 target := &ret 4586 if err := gensupport.DecodeResponse(target, res); err != nil { 4587 return nil, err 4588 } 4589 return ret, nil 4590 // { 4591 // "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", 4592 // "flatPath": "v1/operations/{operationsId}:cancel", 4593 // "httpMethod": "POST", 4594 // "id": "serviceconsumermanagement.operations.cancel", 4595 // "parameterOrder": [ 4596 // "name" 4597 // ], 4598 // "parameters": { 4599 // "name": { 4600 // "description": "The name of the operation resource to be cancelled.", 4601 // "location": "path", 4602 // "pattern": "^operations/.*$", 4603 // "required": true, 4604 // "type": "string" 4605 // } 4606 // }, 4607 // "path": "v1/{+name}:cancel", 4608 // "request": { 4609 // "$ref": "CancelOperationRequest" 4610 // }, 4611 // "response": { 4612 // "$ref": "Empty" 4613 // }, 4614 // "scopes": [ 4615 // "https://www.googleapis.com/auth/cloud-platform" 4616 // ] 4617 // } 4618 4619} 4620 4621// method id "serviceconsumermanagement.operations.delete": 4622 4623type OperationsDeleteCall struct { 4624 s *APIService 4625 name string 4626 urlParams_ gensupport.URLParams 4627 ctx_ context.Context 4628 header_ http.Header 4629} 4630 4631// Delete: Deletes a long-running operation. This method indicates that 4632// the client is no longer interested in the operation result. It does 4633// not cancel the operation. If the server doesn't support this method, 4634// it returns `google.rpc.Code.UNIMPLEMENTED`. 4635// 4636// - name: The name of the operation resource to be deleted. 4637func (r *OperationsService) Delete(name string) *OperationsDeleteCall { 4638 c := &OperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4639 c.name = name 4640 return c 4641} 4642 4643// Fields allows partial responses to be retrieved. See 4644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4645// for more information. 4646func (c *OperationsDeleteCall) Fields(s ...googleapi.Field) *OperationsDeleteCall { 4647 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4648 return c 4649} 4650 4651// Context sets the context to be used in this call's Do method. Any 4652// pending HTTP request will be aborted if the provided context is 4653// canceled. 4654func (c *OperationsDeleteCall) Context(ctx context.Context) *OperationsDeleteCall { 4655 c.ctx_ = ctx 4656 return c 4657} 4658 4659// Header returns an http.Header that can be modified by the caller to 4660// add HTTP headers to the request. 4661func (c *OperationsDeleteCall) Header() http.Header { 4662 if c.header_ == nil { 4663 c.header_ = make(http.Header) 4664 } 4665 return c.header_ 4666} 4667 4668func (c *OperationsDeleteCall) doRequest(alt string) (*http.Response, error) { 4669 reqHeaders := make(http.Header) 4670 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 4671 for k, v := range c.header_ { 4672 reqHeaders[k] = v 4673 } 4674 reqHeaders.Set("User-Agent", c.s.userAgent()) 4675 var body io.Reader = nil 4676 c.urlParams_.Set("alt", alt) 4677 c.urlParams_.Set("prettyPrint", "false") 4678 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 4679 urls += "?" + c.urlParams_.Encode() 4680 req, err := http.NewRequest("DELETE", urls, body) 4681 if err != nil { 4682 return nil, err 4683 } 4684 req.Header = reqHeaders 4685 googleapi.Expand(req.URL, map[string]string{ 4686 "name": c.name, 4687 }) 4688 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4689} 4690 4691// Do executes the "serviceconsumermanagement.operations.delete" call. 4692// Exactly one of *Empty or error will be non-nil. Any non-2xx status 4693// code is an error. Response headers are in either 4694// *Empty.ServerResponse.Header or (if a response was returned at all) 4695// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 4696// check whether the returned error was because http.StatusNotModified 4697// was returned. 4698func (c *OperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { 4699 gensupport.SetOptions(c.urlParams_, opts...) 4700 res, err := c.doRequest("json") 4701 if res != nil && res.StatusCode == http.StatusNotModified { 4702 if res.Body != nil { 4703 res.Body.Close() 4704 } 4705 return nil, &googleapi.Error{ 4706 Code: res.StatusCode, 4707 Header: res.Header, 4708 } 4709 } 4710 if err != nil { 4711 return nil, err 4712 } 4713 defer googleapi.CloseBody(res) 4714 if err := googleapi.CheckResponse(res); err != nil { 4715 return nil, err 4716 } 4717 ret := &Empty{ 4718 ServerResponse: googleapi.ServerResponse{ 4719 Header: res.Header, 4720 HTTPStatusCode: res.StatusCode, 4721 }, 4722 } 4723 target := &ret 4724 if err := gensupport.DecodeResponse(target, res); err != nil { 4725 return nil, err 4726 } 4727 return ret, nil 4728 // { 4729 // "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", 4730 // "flatPath": "v1/operations/{operationsId}", 4731 // "httpMethod": "DELETE", 4732 // "id": "serviceconsumermanagement.operations.delete", 4733 // "parameterOrder": [ 4734 // "name" 4735 // ], 4736 // "parameters": { 4737 // "name": { 4738 // "description": "The name of the operation resource to be deleted.", 4739 // "location": "path", 4740 // "pattern": "^operations/.*$", 4741 // "required": true, 4742 // "type": "string" 4743 // } 4744 // }, 4745 // "path": "v1/{+name}", 4746 // "response": { 4747 // "$ref": "Empty" 4748 // }, 4749 // "scopes": [ 4750 // "https://www.googleapis.com/auth/cloud-platform" 4751 // ] 4752 // } 4753 4754} 4755 4756// method id "serviceconsumermanagement.operations.get": 4757 4758type OperationsGetCall struct { 4759 s *APIService 4760 name string 4761 urlParams_ gensupport.URLParams 4762 ifNoneMatch_ string 4763 ctx_ context.Context 4764 header_ http.Header 4765} 4766 4767// Get: Gets the latest state of a long-running operation. Clients can 4768// use this method to poll the operation result at intervals as 4769// recommended by the API service. 4770// 4771// - name: The name of the operation resource. 4772func (r *OperationsService) Get(name string) *OperationsGetCall { 4773 c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4774 c.name = name 4775 return c 4776} 4777 4778// Fields allows partial responses to be retrieved. See 4779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4780// for more information. 4781func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { 4782 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4783 return c 4784} 4785 4786// IfNoneMatch sets the optional parameter which makes the operation 4787// fail if the object's ETag matches the given value. This is useful for 4788// getting updates only after the object has changed since the last 4789// request. Use googleapi.IsNotModified to check whether the response 4790// error from Do is the result of In-None-Match. 4791func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { 4792 c.ifNoneMatch_ = entityTag 4793 return c 4794} 4795 4796// Context sets the context to be used in this call's Do method. Any 4797// pending HTTP request will be aborted if the provided context is 4798// canceled. 4799func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { 4800 c.ctx_ = ctx 4801 return c 4802} 4803 4804// Header returns an http.Header that can be modified by the caller to 4805// add HTTP headers to the request. 4806func (c *OperationsGetCall) Header() http.Header { 4807 if c.header_ == nil { 4808 c.header_ = make(http.Header) 4809 } 4810 return c.header_ 4811} 4812 4813func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { 4814 reqHeaders := make(http.Header) 4815 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 4816 for k, v := range c.header_ { 4817 reqHeaders[k] = v 4818 } 4819 reqHeaders.Set("User-Agent", c.s.userAgent()) 4820 if c.ifNoneMatch_ != "" { 4821 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4822 } 4823 var body io.Reader = nil 4824 c.urlParams_.Set("alt", alt) 4825 c.urlParams_.Set("prettyPrint", "false") 4826 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 4827 urls += "?" + c.urlParams_.Encode() 4828 req, err := http.NewRequest("GET", urls, body) 4829 if err != nil { 4830 return nil, err 4831 } 4832 req.Header = reqHeaders 4833 googleapi.Expand(req.URL, map[string]string{ 4834 "name": c.name, 4835 }) 4836 return gensupport.SendRequest(c.ctx_, c.s.client, req) 4837} 4838 4839// Do executes the "serviceconsumermanagement.operations.get" call. 4840// Exactly one of *Operation or error will be non-nil. Any non-2xx 4841// status code is an error. Response headers are in either 4842// *Operation.ServerResponse.Header or (if a response was returned at 4843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 4844// to check whether the returned error was because 4845// http.StatusNotModified was returned. 4846func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 4847 gensupport.SetOptions(c.urlParams_, opts...) 4848 res, err := c.doRequest("json") 4849 if res != nil && res.StatusCode == http.StatusNotModified { 4850 if res.Body != nil { 4851 res.Body.Close() 4852 } 4853 return nil, &googleapi.Error{ 4854 Code: res.StatusCode, 4855 Header: res.Header, 4856 } 4857 } 4858 if err != nil { 4859 return nil, err 4860 } 4861 defer googleapi.CloseBody(res) 4862 if err := googleapi.CheckResponse(res); err != nil { 4863 return nil, err 4864 } 4865 ret := &Operation{ 4866 ServerResponse: googleapi.ServerResponse{ 4867 Header: res.Header, 4868 HTTPStatusCode: res.StatusCode, 4869 }, 4870 } 4871 target := &ret 4872 if err := gensupport.DecodeResponse(target, res); err != nil { 4873 return nil, err 4874 } 4875 return ret, nil 4876 // { 4877 // "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", 4878 // "flatPath": "v1/operations/{operationsId}", 4879 // "httpMethod": "GET", 4880 // "id": "serviceconsumermanagement.operations.get", 4881 // "parameterOrder": [ 4882 // "name" 4883 // ], 4884 // "parameters": { 4885 // "name": { 4886 // "description": "The name of the operation resource.", 4887 // "location": "path", 4888 // "pattern": "^operations/[^/]+$", 4889 // "required": true, 4890 // "type": "string" 4891 // } 4892 // }, 4893 // "path": "v1/{+name}", 4894 // "response": { 4895 // "$ref": "Operation" 4896 // }, 4897 // "scopes": [ 4898 // "https://www.googleapis.com/auth/cloud-platform" 4899 // ] 4900 // } 4901 4902} 4903 4904// method id "serviceconsumermanagement.operations.list": 4905 4906type OperationsListCall struct { 4907 s *APIService 4908 name string 4909 urlParams_ gensupport.URLParams 4910 ifNoneMatch_ string 4911 ctx_ context.Context 4912 header_ http.Header 4913} 4914 4915// List: Lists operations that match the specified filter in the 4916// request. If the server doesn't support this method, it returns 4917// `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to 4918// override the binding to use different resource name schemes, such as 4919// `users/*/operations`. To override the binding, API services can add a 4920// binding such as "/v1/{name=users/*}/operations" to their service 4921// configuration. For backwards compatibility, the default name includes 4922// the operations collection id, however overriding users must ensure 4923// the name binding is the parent resource, without the operations 4924// collection id. 4925// 4926// - name: The name of the operation's parent resource. 4927func (r *OperationsService) List(name string) *OperationsListCall { 4928 c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 4929 c.name = name 4930 return c 4931} 4932 4933// Filter sets the optional parameter "filter": The standard list 4934// filter. 4935func (c *OperationsListCall) Filter(filter string) *OperationsListCall { 4936 c.urlParams_.Set("filter", filter) 4937 return c 4938} 4939 4940// PageSize sets the optional parameter "pageSize": The standard list 4941// page size. 4942func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall { 4943 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 4944 return c 4945} 4946 4947// PageToken sets the optional parameter "pageToken": The standard list 4948// page token. 4949func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall { 4950 c.urlParams_.Set("pageToken", pageToken) 4951 return c 4952} 4953 4954// Fields allows partial responses to be retrieved. See 4955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 4956// for more information. 4957func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall { 4958 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 4959 return c 4960} 4961 4962// IfNoneMatch sets the optional parameter which makes the operation 4963// fail if the object's ETag matches the given value. This is useful for 4964// getting updates only after the object has changed since the last 4965// request. Use googleapi.IsNotModified to check whether the response 4966// error from Do is the result of In-None-Match. 4967func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall { 4968 c.ifNoneMatch_ = entityTag 4969 return c 4970} 4971 4972// Context sets the context to be used in this call's Do method. Any 4973// pending HTTP request will be aborted if the provided context is 4974// canceled. 4975func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall { 4976 c.ctx_ = ctx 4977 return c 4978} 4979 4980// Header returns an http.Header that can be modified by the caller to 4981// add HTTP headers to the request. 4982func (c *OperationsListCall) Header() http.Header { 4983 if c.header_ == nil { 4984 c.header_ = make(http.Header) 4985 } 4986 return c.header_ 4987} 4988 4989func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) { 4990 reqHeaders := make(http.Header) 4991 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 4992 for k, v := range c.header_ { 4993 reqHeaders[k] = v 4994 } 4995 reqHeaders.Set("User-Agent", c.s.userAgent()) 4996 if c.ifNoneMatch_ != "" { 4997 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 4998 } 4999 var body io.Reader = nil 5000 c.urlParams_.Set("alt", alt) 5001 c.urlParams_.Set("prettyPrint", "false") 5002 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 5003 urls += "?" + c.urlParams_.Encode() 5004 req, err := http.NewRequest("GET", urls, body) 5005 if err != nil { 5006 return nil, err 5007 } 5008 req.Header = reqHeaders 5009 googleapi.Expand(req.URL, map[string]string{ 5010 "name": c.name, 5011 }) 5012 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5013} 5014 5015// Do executes the "serviceconsumermanagement.operations.list" call. 5016// Exactly one of *ListOperationsResponse or error will be non-nil. Any 5017// non-2xx status code is an error. Response headers are in either 5018// *ListOperationsResponse.ServerResponse.Header or (if a response was 5019// returned at all) in error.(*googleapi.Error).Header. Use 5020// googleapi.IsNotModified to check whether the returned error was 5021// because http.StatusNotModified was returned. 5022func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) { 5023 gensupport.SetOptions(c.urlParams_, opts...) 5024 res, err := c.doRequest("json") 5025 if res != nil && res.StatusCode == http.StatusNotModified { 5026 if res.Body != nil { 5027 res.Body.Close() 5028 } 5029 return nil, &googleapi.Error{ 5030 Code: res.StatusCode, 5031 Header: res.Header, 5032 } 5033 } 5034 if err != nil { 5035 return nil, err 5036 } 5037 defer googleapi.CloseBody(res) 5038 if err := googleapi.CheckResponse(res); err != nil { 5039 return nil, err 5040 } 5041 ret := &ListOperationsResponse{ 5042 ServerResponse: googleapi.ServerResponse{ 5043 Header: res.Header, 5044 HTTPStatusCode: res.StatusCode, 5045 }, 5046 } 5047 target := &ret 5048 if err := gensupport.DecodeResponse(target, res); err != nil { 5049 return nil, err 5050 } 5051 return ret, nil 5052 // { 5053 // "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", 5054 // "flatPath": "v1/operations", 5055 // "httpMethod": "GET", 5056 // "id": "serviceconsumermanagement.operations.list", 5057 // "parameterOrder": [ 5058 // "name" 5059 // ], 5060 // "parameters": { 5061 // "filter": { 5062 // "description": "The standard list filter.", 5063 // "location": "query", 5064 // "type": "string" 5065 // }, 5066 // "name": { 5067 // "description": "The name of the operation's parent resource.", 5068 // "location": "path", 5069 // "pattern": "^operations$", 5070 // "required": true, 5071 // "type": "string" 5072 // }, 5073 // "pageSize": { 5074 // "description": "The standard list page size.", 5075 // "format": "int32", 5076 // "location": "query", 5077 // "type": "integer" 5078 // }, 5079 // "pageToken": { 5080 // "description": "The standard list page token.", 5081 // "location": "query", 5082 // "type": "string" 5083 // } 5084 // }, 5085 // "path": "v1/{+name}", 5086 // "response": { 5087 // "$ref": "ListOperationsResponse" 5088 // }, 5089 // "scopes": [ 5090 // "https://www.googleapis.com/auth/cloud-platform" 5091 // ] 5092 // } 5093 5094} 5095 5096// Pages invokes f for each page of results. 5097// A non-nil error returned from f will halt the iteration. 5098// The provided context supersedes any context provided to the Context method. 5099func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error { 5100 c.ctx_ = ctx 5101 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 5102 for { 5103 x, err := c.Do() 5104 if err != nil { 5105 return err 5106 } 5107 if err := f(x); err != nil { 5108 return err 5109 } 5110 if x.NextPageToken == "" { 5111 return nil 5112 } 5113 c.PageToken(x.NextPageToken) 5114 } 5115} 5116 5117// method id "serviceconsumermanagement.services.search": 5118 5119type ServicesSearchCall struct { 5120 s *APIService 5121 parent string 5122 urlParams_ gensupport.URLParams 5123 ifNoneMatch_ string 5124 ctx_ context.Context 5125 header_ http.Header 5126} 5127 5128// Search: Search tenancy units for a managed service. 5129// 5130// - parent: Service for which search is performed. services/{service} 5131// {service} the name of a service, for example 5132// 'service.googleapis.com'. 5133func (r *ServicesService) Search(parent string) *ServicesSearchCall { 5134 c := &ServicesSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5135 c.parent = parent 5136 return c 5137} 5138 5139// PageSize sets the optional parameter "pageSize": The maximum number 5140// of results returned by this request. Currently, the default maximum 5141// is set to 1000. If `page_size` isn't provided or the size provided is 5142// a number larger than 1000, it's automatically set to 1000. 5143func (c *ServicesSearchCall) PageSize(pageSize int64) *ServicesSearchCall { 5144 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 5145 return c 5146} 5147 5148// PageToken sets the optional parameter "pageToken": The continuation 5149// token, which is used to page through large result sets. To get the 5150// next page of results, set this parameter to the value of 5151// `nextPageToken` from the previous response. 5152func (c *ServicesSearchCall) PageToken(pageToken string) *ServicesSearchCall { 5153 c.urlParams_.Set("pageToken", pageToken) 5154 return c 5155} 5156 5157// Query sets the optional parameter "query": Set a query `{expression}` 5158// for querying tenancy units. Your `{expression}` must be in the 5159// format: `field_name=literal_string`. The `field_name` is the name of 5160// the field you want to compare. Supported fields are 5161// `tenant_resources.tag` and `tenant_resources.resource`. For example, 5162// to search tenancy units that contain at least one tenant resource 5163// with a given tag 'xyz', use the query `tenant_resources.tag=xyz`. To 5164// search tenancy units that contain at least one tenant resource with a 5165// given resource name 'projects/123456', use the query 5166// `tenant_resources.resource=projects/123456`. Multiple expressions can 5167// be joined with `AND`s. Tenancy units must match all expressions to be 5168// included in the result set. For example, `tenant_resources.tag=xyz 5169// AND tenant_resources.resource=projects/123456` 5170func (c *ServicesSearchCall) Query(query string) *ServicesSearchCall { 5171 c.urlParams_.Set("query", query) 5172 return c 5173} 5174 5175// Fields allows partial responses to be retrieved. See 5176// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5177// for more information. 5178func (c *ServicesSearchCall) Fields(s ...googleapi.Field) *ServicesSearchCall { 5179 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5180 return c 5181} 5182 5183// IfNoneMatch sets the optional parameter which makes the operation 5184// fail if the object's ETag matches the given value. This is useful for 5185// getting updates only after the object has changed since the last 5186// request. Use googleapi.IsNotModified to check whether the response 5187// error from Do is the result of In-None-Match. 5188func (c *ServicesSearchCall) IfNoneMatch(entityTag string) *ServicesSearchCall { 5189 c.ifNoneMatch_ = entityTag 5190 return c 5191} 5192 5193// Context sets the context to be used in this call's Do method. Any 5194// pending HTTP request will be aborted if the provided context is 5195// canceled. 5196func (c *ServicesSearchCall) Context(ctx context.Context) *ServicesSearchCall { 5197 c.ctx_ = ctx 5198 return c 5199} 5200 5201// Header returns an http.Header that can be modified by the caller to 5202// add HTTP headers to the request. 5203func (c *ServicesSearchCall) Header() http.Header { 5204 if c.header_ == nil { 5205 c.header_ = make(http.Header) 5206 } 5207 return c.header_ 5208} 5209 5210func (c *ServicesSearchCall) doRequest(alt string) (*http.Response, error) { 5211 reqHeaders := make(http.Header) 5212 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5213 for k, v := range c.header_ { 5214 reqHeaders[k] = v 5215 } 5216 reqHeaders.Set("User-Agent", c.s.userAgent()) 5217 if c.ifNoneMatch_ != "" { 5218 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 5219 } 5220 var body io.Reader = nil 5221 c.urlParams_.Set("alt", alt) 5222 c.urlParams_.Set("prettyPrint", "false") 5223 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:search") 5224 urls += "?" + c.urlParams_.Encode() 5225 req, err := http.NewRequest("GET", urls, body) 5226 if err != nil { 5227 return nil, err 5228 } 5229 req.Header = reqHeaders 5230 googleapi.Expand(req.URL, map[string]string{ 5231 "parent": c.parent, 5232 }) 5233 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5234} 5235 5236// Do executes the "serviceconsumermanagement.services.search" call. 5237// Exactly one of *SearchTenancyUnitsResponse or error will be non-nil. 5238// Any non-2xx status code is an error. Response headers are in either 5239// *SearchTenancyUnitsResponse.ServerResponse.Header or (if a response 5240// was returned at all) in error.(*googleapi.Error).Header. Use 5241// googleapi.IsNotModified to check whether the returned error was 5242// because http.StatusNotModified was returned. 5243func (c *ServicesSearchCall) Do(opts ...googleapi.CallOption) (*SearchTenancyUnitsResponse, error) { 5244 gensupport.SetOptions(c.urlParams_, opts...) 5245 res, err := c.doRequest("json") 5246 if res != nil && res.StatusCode == http.StatusNotModified { 5247 if res.Body != nil { 5248 res.Body.Close() 5249 } 5250 return nil, &googleapi.Error{ 5251 Code: res.StatusCode, 5252 Header: res.Header, 5253 } 5254 } 5255 if err != nil { 5256 return nil, err 5257 } 5258 defer googleapi.CloseBody(res) 5259 if err := googleapi.CheckResponse(res); err != nil { 5260 return nil, err 5261 } 5262 ret := &SearchTenancyUnitsResponse{ 5263 ServerResponse: googleapi.ServerResponse{ 5264 Header: res.Header, 5265 HTTPStatusCode: res.StatusCode, 5266 }, 5267 } 5268 target := &ret 5269 if err := gensupport.DecodeResponse(target, res); err != nil { 5270 return nil, err 5271 } 5272 return ret, nil 5273 // { 5274 // "description": "Search tenancy units for a managed service.", 5275 // "flatPath": "v1/services/{servicesId}:search", 5276 // "httpMethod": "GET", 5277 // "id": "serviceconsumermanagement.services.search", 5278 // "parameterOrder": [ 5279 // "parent" 5280 // ], 5281 // "parameters": { 5282 // "pageSize": { 5283 // "description": "Optional. The maximum number of results returned by this request. Currently, the default maximum is set to 1000. If `page_size` isn't provided or the size provided is a number larger than 1000, it's automatically set to 1000.", 5284 // "format": "int32", 5285 // "location": "query", 5286 // "type": "integer" 5287 // }, 5288 // "pageToken": { 5289 // "description": "Optional. The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.", 5290 // "location": "query", 5291 // "type": "string" 5292 // }, 5293 // "parent": { 5294 // "description": "Required. Service for which search is performed. services/{service} {service} the name of a service, for example 'service.googleapis.com'.", 5295 // "location": "path", 5296 // "pattern": "^services/[^/]+$", 5297 // "required": true, 5298 // "type": "string" 5299 // }, 5300 // "query": { 5301 // "description": "Optional. Set a query `{expression}` for querying tenancy units. Your `{expression}` must be in the format: `field_name=literal_string`. The `field_name` is the name of the field you want to compare. Supported fields are `tenant_resources.tag` and `tenant_resources.resource`. For example, to search tenancy units that contain at least one tenant resource with a given tag 'xyz', use the query `tenant_resources.tag=xyz`. To search tenancy units that contain at least one tenant resource with a given resource name 'projects/123456', use the query `tenant_resources.resource=projects/123456`. Multiple expressions can be joined with `AND`s. Tenancy units must match all expressions to be included in the result set. For example, `tenant_resources.tag=xyz AND tenant_resources.resource=projects/123456`", 5302 // "location": "query", 5303 // "type": "string" 5304 // } 5305 // }, 5306 // "path": "v1/{+parent}:search", 5307 // "response": { 5308 // "$ref": "SearchTenancyUnitsResponse" 5309 // }, 5310 // "scopes": [ 5311 // "https://www.googleapis.com/auth/cloud-platform" 5312 // ] 5313 // } 5314 5315} 5316 5317// Pages invokes f for each page of results. 5318// A non-nil error returned from f will halt the iteration. 5319// The provided context supersedes any context provided to the Context method. 5320func (c *ServicesSearchCall) Pages(ctx context.Context, f func(*SearchTenancyUnitsResponse) error) error { 5321 c.ctx_ = ctx 5322 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 5323 for { 5324 x, err := c.Do() 5325 if err != nil { 5326 return err 5327 } 5328 if err := f(x); err != nil { 5329 return err 5330 } 5331 if x.NextPageToken == "" { 5332 return nil 5333 } 5334 c.PageToken(x.NextPageToken) 5335 } 5336} 5337 5338// method id "serviceconsumermanagement.services.tenancyUnits.addProject": 5339 5340type ServicesTenancyUnitsAddProjectCall struct { 5341 s *APIService 5342 parent string 5343 addtenantprojectrequest *AddTenantProjectRequest 5344 urlParams_ gensupport.URLParams 5345 ctx_ context.Context 5346 header_ http.Header 5347} 5348 5349// AddProject: Add a new tenant project to the tenancy unit. There can 5350// be a maximum of 1024 tenant projects in a tenancy unit. If there are 5351// previously failed `AddTenantProject` calls, you might need to call 5352// `RemoveTenantProject` first to resolve them before you can make 5353// another call to `AddTenantProject` with the same tag. Operation. 5354// 5355// - parent: Name of the tenancy unit. Such as 5356// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 5357func (r *ServicesTenancyUnitsService) AddProject(parent string, addtenantprojectrequest *AddTenantProjectRequest) *ServicesTenancyUnitsAddProjectCall { 5358 c := &ServicesTenancyUnitsAddProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5359 c.parent = parent 5360 c.addtenantprojectrequest = addtenantprojectrequest 5361 return c 5362} 5363 5364// Fields allows partial responses to be retrieved. See 5365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5366// for more information. 5367func (c *ServicesTenancyUnitsAddProjectCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsAddProjectCall { 5368 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5369 return c 5370} 5371 5372// Context sets the context to be used in this call's Do method. Any 5373// pending HTTP request will be aborted if the provided context is 5374// canceled. 5375func (c *ServicesTenancyUnitsAddProjectCall) Context(ctx context.Context) *ServicesTenancyUnitsAddProjectCall { 5376 c.ctx_ = ctx 5377 return c 5378} 5379 5380// Header returns an http.Header that can be modified by the caller to 5381// add HTTP headers to the request. 5382func (c *ServicesTenancyUnitsAddProjectCall) Header() http.Header { 5383 if c.header_ == nil { 5384 c.header_ = make(http.Header) 5385 } 5386 return c.header_ 5387} 5388 5389func (c *ServicesTenancyUnitsAddProjectCall) doRequest(alt string) (*http.Response, error) { 5390 reqHeaders := make(http.Header) 5391 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5392 for k, v := range c.header_ { 5393 reqHeaders[k] = v 5394 } 5395 reqHeaders.Set("User-Agent", c.s.userAgent()) 5396 var body io.Reader = nil 5397 body, err := googleapi.WithoutDataWrapper.JSONReader(c.addtenantprojectrequest) 5398 if err != nil { 5399 return nil, err 5400 } 5401 reqHeaders.Set("Content-Type", "application/json") 5402 c.urlParams_.Set("alt", alt) 5403 c.urlParams_.Set("prettyPrint", "false") 5404 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}:addProject") 5405 urls += "?" + c.urlParams_.Encode() 5406 req, err := http.NewRequest("POST", urls, body) 5407 if err != nil { 5408 return nil, err 5409 } 5410 req.Header = reqHeaders 5411 googleapi.Expand(req.URL, map[string]string{ 5412 "parent": c.parent, 5413 }) 5414 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5415} 5416 5417// Do executes the "serviceconsumermanagement.services.tenancyUnits.addProject" call. 5418// Exactly one of *Operation or error will be non-nil. Any non-2xx 5419// status code is an error. Response headers are in either 5420// *Operation.ServerResponse.Header or (if a response was returned at 5421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5422// to check whether the returned error was because 5423// http.StatusNotModified was returned. 5424func (c *ServicesTenancyUnitsAddProjectCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5425 gensupport.SetOptions(c.urlParams_, opts...) 5426 res, err := c.doRequest("json") 5427 if res != nil && res.StatusCode == http.StatusNotModified { 5428 if res.Body != nil { 5429 res.Body.Close() 5430 } 5431 return nil, &googleapi.Error{ 5432 Code: res.StatusCode, 5433 Header: res.Header, 5434 } 5435 } 5436 if err != nil { 5437 return nil, err 5438 } 5439 defer googleapi.CloseBody(res) 5440 if err := googleapi.CheckResponse(res); err != nil { 5441 return nil, err 5442 } 5443 ret := &Operation{ 5444 ServerResponse: googleapi.ServerResponse{ 5445 Header: res.Header, 5446 HTTPStatusCode: res.StatusCode, 5447 }, 5448 } 5449 target := &ret 5450 if err := gensupport.DecodeResponse(target, res); err != nil { 5451 return nil, err 5452 } 5453 return ret, nil 5454 // { 5455 // "description": "Add a new tenant project to the tenancy unit. There can be a maximum of 1024 tenant projects in a tenancy unit. If there are previously failed `AddTenantProject` calls, you might need to call `RemoveTenantProject` first to resolve them before you can make another call to `AddTenantProject` with the same tag. Operation.", 5456 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:addProject", 5457 // "httpMethod": "POST", 5458 // "id": "serviceconsumermanagement.services.tenancyUnits.addProject", 5459 // "parameterOrder": [ 5460 // "parent" 5461 // ], 5462 // "parameters": { 5463 // "parent": { 5464 // "description": "Required. Name of the tenancy unit. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 5465 // "location": "path", 5466 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 5467 // "required": true, 5468 // "type": "string" 5469 // } 5470 // }, 5471 // "path": "v1/{+parent}:addProject", 5472 // "request": { 5473 // "$ref": "AddTenantProjectRequest" 5474 // }, 5475 // "response": { 5476 // "$ref": "Operation" 5477 // }, 5478 // "scopes": [ 5479 // "https://www.googleapis.com/auth/cloud-platform" 5480 // ] 5481 // } 5482 5483} 5484 5485// method id "serviceconsumermanagement.services.tenancyUnits.applyProjectConfig": 5486 5487type ServicesTenancyUnitsApplyProjectConfigCall struct { 5488 s *APIService 5489 name string 5490 applytenantprojectconfigrequest *ApplyTenantProjectConfigRequest 5491 urlParams_ gensupport.URLParams 5492 ctx_ context.Context 5493 header_ http.Header 5494} 5495 5496// ApplyProjectConfig: Apply a configuration to an existing tenant 5497// project. This project must exist in an active state and have the 5498// original owner account. The caller must have permission to add a 5499// project to the given tenancy unit. The configuration is applied, but 5500// any existing settings on the project aren't modified. Specified 5501// policy bindings are applied. Existing bindings aren't modified. 5502// Specified services are activated. No service is deactivated. If 5503// specified, new billing configuration is applied. Omit a billing 5504// configuration to keep the existing one. A service account in the 5505// project is created if previously non existed. Specified labels will 5506// be appended to tenant project, note that the value of existing label 5507// key will be updated if the same label key is requested. The specified 5508// folder is ignored, as moving a tenant project to a different folder 5509// isn't supported. The operation fails if any of the steps fail, but no 5510// rollback of already applied configuration changes is attempted. 5511// Operation. 5512// 5513// - name: Name of the tenancy unit. Such as 5514// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 5515func (r *ServicesTenancyUnitsService) ApplyProjectConfig(name string, applytenantprojectconfigrequest *ApplyTenantProjectConfigRequest) *ServicesTenancyUnitsApplyProjectConfigCall { 5516 c := &ServicesTenancyUnitsApplyProjectConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5517 c.name = name 5518 c.applytenantprojectconfigrequest = applytenantprojectconfigrequest 5519 return c 5520} 5521 5522// Fields allows partial responses to be retrieved. See 5523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5524// for more information. 5525func (c *ServicesTenancyUnitsApplyProjectConfigCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsApplyProjectConfigCall { 5526 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5527 return c 5528} 5529 5530// Context sets the context to be used in this call's Do method. Any 5531// pending HTTP request will be aborted if the provided context is 5532// canceled. 5533func (c *ServicesTenancyUnitsApplyProjectConfigCall) Context(ctx context.Context) *ServicesTenancyUnitsApplyProjectConfigCall { 5534 c.ctx_ = ctx 5535 return c 5536} 5537 5538// Header returns an http.Header that can be modified by the caller to 5539// add HTTP headers to the request. 5540func (c *ServicesTenancyUnitsApplyProjectConfigCall) Header() http.Header { 5541 if c.header_ == nil { 5542 c.header_ = make(http.Header) 5543 } 5544 return c.header_ 5545} 5546 5547func (c *ServicesTenancyUnitsApplyProjectConfigCall) doRequest(alt string) (*http.Response, error) { 5548 reqHeaders := make(http.Header) 5549 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5550 for k, v := range c.header_ { 5551 reqHeaders[k] = v 5552 } 5553 reqHeaders.Set("User-Agent", c.s.userAgent()) 5554 var body io.Reader = nil 5555 body, err := googleapi.WithoutDataWrapper.JSONReader(c.applytenantprojectconfigrequest) 5556 if err != nil { 5557 return nil, err 5558 } 5559 reqHeaders.Set("Content-Type", "application/json") 5560 c.urlParams_.Set("alt", alt) 5561 c.urlParams_.Set("prettyPrint", "false") 5562 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:applyProjectConfig") 5563 urls += "?" + c.urlParams_.Encode() 5564 req, err := http.NewRequest("POST", urls, body) 5565 if err != nil { 5566 return nil, err 5567 } 5568 req.Header = reqHeaders 5569 googleapi.Expand(req.URL, map[string]string{ 5570 "name": c.name, 5571 }) 5572 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5573} 5574 5575// Do executes the "serviceconsumermanagement.services.tenancyUnits.applyProjectConfig" call. 5576// Exactly one of *Operation or error will be non-nil. Any non-2xx 5577// status code is an error. Response headers are in either 5578// *Operation.ServerResponse.Header or (if a response was returned at 5579// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5580// to check whether the returned error was because 5581// http.StatusNotModified was returned. 5582func (c *ServicesTenancyUnitsApplyProjectConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5583 gensupport.SetOptions(c.urlParams_, opts...) 5584 res, err := c.doRequest("json") 5585 if res != nil && res.StatusCode == http.StatusNotModified { 5586 if res.Body != nil { 5587 res.Body.Close() 5588 } 5589 return nil, &googleapi.Error{ 5590 Code: res.StatusCode, 5591 Header: res.Header, 5592 } 5593 } 5594 if err != nil { 5595 return nil, err 5596 } 5597 defer googleapi.CloseBody(res) 5598 if err := googleapi.CheckResponse(res); err != nil { 5599 return nil, err 5600 } 5601 ret := &Operation{ 5602 ServerResponse: googleapi.ServerResponse{ 5603 Header: res.Header, 5604 HTTPStatusCode: res.StatusCode, 5605 }, 5606 } 5607 target := &ret 5608 if err := gensupport.DecodeResponse(target, res); err != nil { 5609 return nil, err 5610 } 5611 return ret, nil 5612 // { 5613 // "description": "Apply a configuration to an existing tenant project. This project must exist in an active state and have the original owner account. The caller must have permission to add a project to the given tenancy unit. The configuration is applied, but any existing settings on the project aren't modified. Specified policy bindings are applied. Existing bindings aren't modified. Specified services are activated. No service is deactivated. If specified, new billing configuration is applied. Omit a billing configuration to keep the existing one. A service account in the project is created if previously non existed. Specified labels will be appended to tenant project, note that the value of existing label key will be updated if the same label key is requested. The specified folder is ignored, as moving a tenant project to a different folder isn't supported. The operation fails if any of the steps fail, but no rollback of already applied configuration changes is attempted. Operation.", 5614 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:applyProjectConfig", 5615 // "httpMethod": "POST", 5616 // "id": "serviceconsumermanagement.services.tenancyUnits.applyProjectConfig", 5617 // "parameterOrder": [ 5618 // "name" 5619 // ], 5620 // "parameters": { 5621 // "name": { 5622 // "description": "Required. Name of the tenancy unit. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 5623 // "location": "path", 5624 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 5625 // "required": true, 5626 // "type": "string" 5627 // } 5628 // }, 5629 // "path": "v1/{+name}:applyProjectConfig", 5630 // "request": { 5631 // "$ref": "ApplyTenantProjectConfigRequest" 5632 // }, 5633 // "response": { 5634 // "$ref": "Operation" 5635 // }, 5636 // "scopes": [ 5637 // "https://www.googleapis.com/auth/cloud-platform" 5638 // ] 5639 // } 5640 5641} 5642 5643// method id "serviceconsumermanagement.services.tenancyUnits.attachProject": 5644 5645type ServicesTenancyUnitsAttachProjectCall struct { 5646 s *APIService 5647 name string 5648 attachtenantprojectrequest *AttachTenantProjectRequest 5649 urlParams_ gensupport.URLParams 5650 ctx_ context.Context 5651 header_ http.Header 5652} 5653 5654// AttachProject: Attach an existing project to the tenancy unit as a 5655// new tenant resource. The project could either be the tenant project 5656// reserved by calling `AddTenantProject` under a tenancy unit of a 5657// service producer's project of a managed service, or from a separate 5658// project. The caller is checked against a set of permissions as if 5659// calling `AddTenantProject` on the same service consumer. To trigger 5660// the attachment, the targeted tenant project must be in a folder. Make 5661// sure the ServiceConsumerManagement service account is the owner of 5662// that project. These two requirements are already met if the project 5663// is reserved by calling `AddTenantProject`. Operation. 5664// 5665// - name: Name of the tenancy unit that the project will be attached 5666// to. Such as 5667// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 5668func (r *ServicesTenancyUnitsService) AttachProject(name string, attachtenantprojectrequest *AttachTenantProjectRequest) *ServicesTenancyUnitsAttachProjectCall { 5669 c := &ServicesTenancyUnitsAttachProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5670 c.name = name 5671 c.attachtenantprojectrequest = attachtenantprojectrequest 5672 return c 5673} 5674 5675// Fields allows partial responses to be retrieved. See 5676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5677// for more information. 5678func (c *ServicesTenancyUnitsAttachProjectCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsAttachProjectCall { 5679 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5680 return c 5681} 5682 5683// Context sets the context to be used in this call's Do method. Any 5684// pending HTTP request will be aborted if the provided context is 5685// canceled. 5686func (c *ServicesTenancyUnitsAttachProjectCall) Context(ctx context.Context) *ServicesTenancyUnitsAttachProjectCall { 5687 c.ctx_ = ctx 5688 return c 5689} 5690 5691// Header returns an http.Header that can be modified by the caller to 5692// add HTTP headers to the request. 5693func (c *ServicesTenancyUnitsAttachProjectCall) Header() http.Header { 5694 if c.header_ == nil { 5695 c.header_ = make(http.Header) 5696 } 5697 return c.header_ 5698} 5699 5700func (c *ServicesTenancyUnitsAttachProjectCall) doRequest(alt string) (*http.Response, error) { 5701 reqHeaders := make(http.Header) 5702 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5703 for k, v := range c.header_ { 5704 reqHeaders[k] = v 5705 } 5706 reqHeaders.Set("User-Agent", c.s.userAgent()) 5707 var body io.Reader = nil 5708 body, err := googleapi.WithoutDataWrapper.JSONReader(c.attachtenantprojectrequest) 5709 if err != nil { 5710 return nil, err 5711 } 5712 reqHeaders.Set("Content-Type", "application/json") 5713 c.urlParams_.Set("alt", alt) 5714 c.urlParams_.Set("prettyPrint", "false") 5715 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:attachProject") 5716 urls += "?" + c.urlParams_.Encode() 5717 req, err := http.NewRequest("POST", urls, body) 5718 if err != nil { 5719 return nil, err 5720 } 5721 req.Header = reqHeaders 5722 googleapi.Expand(req.URL, map[string]string{ 5723 "name": c.name, 5724 }) 5725 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5726} 5727 5728// Do executes the "serviceconsumermanagement.services.tenancyUnits.attachProject" call. 5729// Exactly one of *Operation or error will be non-nil. Any non-2xx 5730// status code is an error. Response headers are in either 5731// *Operation.ServerResponse.Header or (if a response was returned at 5732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5733// to check whether the returned error was because 5734// http.StatusNotModified was returned. 5735func (c *ServicesTenancyUnitsAttachProjectCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 5736 gensupport.SetOptions(c.urlParams_, opts...) 5737 res, err := c.doRequest("json") 5738 if res != nil && res.StatusCode == http.StatusNotModified { 5739 if res.Body != nil { 5740 res.Body.Close() 5741 } 5742 return nil, &googleapi.Error{ 5743 Code: res.StatusCode, 5744 Header: res.Header, 5745 } 5746 } 5747 if err != nil { 5748 return nil, err 5749 } 5750 defer googleapi.CloseBody(res) 5751 if err := googleapi.CheckResponse(res); err != nil { 5752 return nil, err 5753 } 5754 ret := &Operation{ 5755 ServerResponse: googleapi.ServerResponse{ 5756 Header: res.Header, 5757 HTTPStatusCode: res.StatusCode, 5758 }, 5759 } 5760 target := &ret 5761 if err := gensupport.DecodeResponse(target, res); err != nil { 5762 return nil, err 5763 } 5764 return ret, nil 5765 // { 5766 // "description": "Attach an existing project to the tenancy unit as a new tenant resource. The project could either be the tenant project reserved by calling `AddTenantProject` under a tenancy unit of a service producer's project of a managed service, or from a separate project. The caller is checked against a set of permissions as if calling `AddTenantProject` on the same service consumer. To trigger the attachment, the targeted tenant project must be in a folder. Make sure the ServiceConsumerManagement service account is the owner of that project. These two requirements are already met if the project is reserved by calling `AddTenantProject`. Operation.", 5767 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:attachProject", 5768 // "httpMethod": "POST", 5769 // "id": "serviceconsumermanagement.services.tenancyUnits.attachProject", 5770 // "parameterOrder": [ 5771 // "name" 5772 // ], 5773 // "parameters": { 5774 // "name": { 5775 // "description": "Required. Name of the tenancy unit that the project will be attached to. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 5776 // "location": "path", 5777 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 5778 // "required": true, 5779 // "type": "string" 5780 // } 5781 // }, 5782 // "path": "v1/{+name}:attachProject", 5783 // "request": { 5784 // "$ref": "AttachTenantProjectRequest" 5785 // }, 5786 // "response": { 5787 // "$ref": "Operation" 5788 // }, 5789 // "scopes": [ 5790 // "https://www.googleapis.com/auth/cloud-platform" 5791 // ] 5792 // } 5793 5794} 5795 5796// method id "serviceconsumermanagement.services.tenancyUnits.create": 5797 5798type ServicesTenancyUnitsCreateCall struct { 5799 s *APIService 5800 parent string 5801 createtenancyunitrequest *CreateTenancyUnitRequest 5802 urlParams_ gensupport.URLParams 5803 ctx_ context.Context 5804 header_ http.Header 5805} 5806 5807// Create: Creates a tenancy unit with no tenant resources. If tenancy 5808// unit already exists, it will be returned, however, in this case, 5809// returned TenancyUnit does not have tenant_resources field set and 5810// ListTenancyUnits has to be used to get a complete TenancyUnit with 5811// all fields populated. 5812// 5813// - parent: services/{service}/{collection id}/{resource id} 5814// {collection id} is the cloud resource collection type representing 5815// the service consumer, for example 'projects', or 'organizations'. 5816// {resource id} is the consumer numeric id, such as project number: 5817// '123456'. {service} the name of a managed service, such as 5818// 'service.googleapis.com'. Enables service binding using the new 5819// tenancy unit. 5820func (r *ServicesTenancyUnitsService) Create(parent string, createtenancyunitrequest *CreateTenancyUnitRequest) *ServicesTenancyUnitsCreateCall { 5821 c := &ServicesTenancyUnitsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5822 c.parent = parent 5823 c.createtenancyunitrequest = createtenancyunitrequest 5824 return c 5825} 5826 5827// Fields allows partial responses to be retrieved. See 5828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5829// for more information. 5830func (c *ServicesTenancyUnitsCreateCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsCreateCall { 5831 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5832 return c 5833} 5834 5835// Context sets the context to be used in this call's Do method. Any 5836// pending HTTP request will be aborted if the provided context is 5837// canceled. 5838func (c *ServicesTenancyUnitsCreateCall) Context(ctx context.Context) *ServicesTenancyUnitsCreateCall { 5839 c.ctx_ = ctx 5840 return c 5841} 5842 5843// Header returns an http.Header that can be modified by the caller to 5844// add HTTP headers to the request. 5845func (c *ServicesTenancyUnitsCreateCall) Header() http.Header { 5846 if c.header_ == nil { 5847 c.header_ = make(http.Header) 5848 } 5849 return c.header_ 5850} 5851 5852func (c *ServicesTenancyUnitsCreateCall) doRequest(alt string) (*http.Response, error) { 5853 reqHeaders := make(http.Header) 5854 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5855 for k, v := range c.header_ { 5856 reqHeaders[k] = v 5857 } 5858 reqHeaders.Set("User-Agent", c.s.userAgent()) 5859 var body io.Reader = nil 5860 body, err := googleapi.WithoutDataWrapper.JSONReader(c.createtenancyunitrequest) 5861 if err != nil { 5862 return nil, err 5863 } 5864 reqHeaders.Set("Content-Type", "application/json") 5865 c.urlParams_.Set("alt", alt) 5866 c.urlParams_.Set("prettyPrint", "false") 5867 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/tenancyUnits") 5868 urls += "?" + c.urlParams_.Encode() 5869 req, err := http.NewRequest("POST", urls, body) 5870 if err != nil { 5871 return nil, err 5872 } 5873 req.Header = reqHeaders 5874 googleapi.Expand(req.URL, map[string]string{ 5875 "parent": c.parent, 5876 }) 5877 return gensupport.SendRequest(c.ctx_, c.s.client, req) 5878} 5879 5880// Do executes the "serviceconsumermanagement.services.tenancyUnits.create" call. 5881// Exactly one of *TenancyUnit or error will be non-nil. Any non-2xx 5882// status code is an error. Response headers are in either 5883// *TenancyUnit.ServerResponse.Header or (if a response was returned at 5884// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 5885// to check whether the returned error was because 5886// http.StatusNotModified was returned. 5887func (c *ServicesTenancyUnitsCreateCall) Do(opts ...googleapi.CallOption) (*TenancyUnit, error) { 5888 gensupport.SetOptions(c.urlParams_, opts...) 5889 res, err := c.doRequest("json") 5890 if res != nil && res.StatusCode == http.StatusNotModified { 5891 if res.Body != nil { 5892 res.Body.Close() 5893 } 5894 return nil, &googleapi.Error{ 5895 Code: res.StatusCode, 5896 Header: res.Header, 5897 } 5898 } 5899 if err != nil { 5900 return nil, err 5901 } 5902 defer googleapi.CloseBody(res) 5903 if err := googleapi.CheckResponse(res); err != nil { 5904 return nil, err 5905 } 5906 ret := &TenancyUnit{ 5907 ServerResponse: googleapi.ServerResponse{ 5908 Header: res.Header, 5909 HTTPStatusCode: res.StatusCode, 5910 }, 5911 } 5912 target := &ret 5913 if err := gensupport.DecodeResponse(target, res); err != nil { 5914 return nil, err 5915 } 5916 return ret, nil 5917 // { 5918 // "description": "Creates a tenancy unit with no tenant resources. If tenancy unit already exists, it will be returned, however, in this case, returned TenancyUnit does not have tenant_resources field set and ListTenancyUnits has to be used to get a complete TenancyUnit with all fields populated.", 5919 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits", 5920 // "httpMethod": "POST", 5921 // "id": "serviceconsumermanagement.services.tenancyUnits.create", 5922 // "parameterOrder": [ 5923 // "parent" 5924 // ], 5925 // "parameters": { 5926 // "parent": { 5927 // "description": "Required. services/{service}/{collection id}/{resource id} {collection id} is the cloud resource collection type representing the service consumer, for example 'projects', or 'organizations'. {resource id} is the consumer numeric id, such as project number: '123456'. {service} the name of a managed service, such as 'service.googleapis.com'. Enables service binding using the new tenancy unit.", 5928 // "location": "path", 5929 // "pattern": "^services/[^/]+/[^/]+/[^/]+$", 5930 // "required": true, 5931 // "type": "string" 5932 // } 5933 // }, 5934 // "path": "v1/{+parent}/tenancyUnits", 5935 // "request": { 5936 // "$ref": "CreateTenancyUnitRequest" 5937 // }, 5938 // "response": { 5939 // "$ref": "TenancyUnit" 5940 // }, 5941 // "scopes": [ 5942 // "https://www.googleapis.com/auth/cloud-platform" 5943 // ] 5944 // } 5945 5946} 5947 5948// method id "serviceconsumermanagement.services.tenancyUnits.delete": 5949 5950type ServicesTenancyUnitsDeleteCall struct { 5951 s *APIService 5952 name string 5953 urlParams_ gensupport.URLParams 5954 ctx_ context.Context 5955 header_ http.Header 5956} 5957 5958// Delete: Delete a tenancy unit. Before you delete the tenancy unit, 5959// there should be no tenant resources in it that aren't in a DELETED 5960// state. Operation. 5961// 5962// - name: Name of the tenancy unit to be deleted. 5963func (r *ServicesTenancyUnitsService) Delete(name string) *ServicesTenancyUnitsDeleteCall { 5964 c := &ServicesTenancyUnitsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 5965 c.name = name 5966 return c 5967} 5968 5969// Fields allows partial responses to be retrieved. See 5970// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 5971// for more information. 5972func (c *ServicesTenancyUnitsDeleteCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsDeleteCall { 5973 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 5974 return c 5975} 5976 5977// Context sets the context to be used in this call's Do method. Any 5978// pending HTTP request will be aborted if the provided context is 5979// canceled. 5980func (c *ServicesTenancyUnitsDeleteCall) Context(ctx context.Context) *ServicesTenancyUnitsDeleteCall { 5981 c.ctx_ = ctx 5982 return c 5983} 5984 5985// Header returns an http.Header that can be modified by the caller to 5986// add HTTP headers to the request. 5987func (c *ServicesTenancyUnitsDeleteCall) Header() http.Header { 5988 if c.header_ == nil { 5989 c.header_ = make(http.Header) 5990 } 5991 return c.header_ 5992} 5993 5994func (c *ServicesTenancyUnitsDeleteCall) doRequest(alt string) (*http.Response, error) { 5995 reqHeaders := make(http.Header) 5996 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 5997 for k, v := range c.header_ { 5998 reqHeaders[k] = v 5999 } 6000 reqHeaders.Set("User-Agent", c.s.userAgent()) 6001 var body io.Reader = nil 6002 c.urlParams_.Set("alt", alt) 6003 c.urlParams_.Set("prettyPrint", "false") 6004 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 6005 urls += "?" + c.urlParams_.Encode() 6006 req, err := http.NewRequest("DELETE", urls, body) 6007 if err != nil { 6008 return nil, err 6009 } 6010 req.Header = reqHeaders 6011 googleapi.Expand(req.URL, map[string]string{ 6012 "name": c.name, 6013 }) 6014 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6015} 6016 6017// Do executes the "serviceconsumermanagement.services.tenancyUnits.delete" call. 6018// Exactly one of *Operation or error will be non-nil. Any non-2xx 6019// status code is an error. Response headers are in either 6020// *Operation.ServerResponse.Header or (if a response was returned at 6021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6022// to check whether the returned error was because 6023// http.StatusNotModified was returned. 6024func (c *ServicesTenancyUnitsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6025 gensupport.SetOptions(c.urlParams_, opts...) 6026 res, err := c.doRequest("json") 6027 if res != nil && res.StatusCode == http.StatusNotModified { 6028 if res.Body != nil { 6029 res.Body.Close() 6030 } 6031 return nil, &googleapi.Error{ 6032 Code: res.StatusCode, 6033 Header: res.Header, 6034 } 6035 } 6036 if err != nil { 6037 return nil, err 6038 } 6039 defer googleapi.CloseBody(res) 6040 if err := googleapi.CheckResponse(res); err != nil { 6041 return nil, err 6042 } 6043 ret := &Operation{ 6044 ServerResponse: googleapi.ServerResponse{ 6045 Header: res.Header, 6046 HTTPStatusCode: res.StatusCode, 6047 }, 6048 } 6049 target := &ret 6050 if err := gensupport.DecodeResponse(target, res); err != nil { 6051 return nil, err 6052 } 6053 return ret, nil 6054 // { 6055 // "description": "Delete a tenancy unit. Before you delete the tenancy unit, there should be no tenant resources in it that aren't in a DELETED state. Operation.", 6056 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}", 6057 // "httpMethod": "DELETE", 6058 // "id": "serviceconsumermanagement.services.tenancyUnits.delete", 6059 // "parameterOrder": [ 6060 // "name" 6061 // ], 6062 // "parameters": { 6063 // "name": { 6064 // "description": "Required. Name of the tenancy unit to be deleted.", 6065 // "location": "path", 6066 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 6067 // "required": true, 6068 // "type": "string" 6069 // } 6070 // }, 6071 // "path": "v1/{+name}", 6072 // "response": { 6073 // "$ref": "Operation" 6074 // }, 6075 // "scopes": [ 6076 // "https://www.googleapis.com/auth/cloud-platform" 6077 // ] 6078 // } 6079 6080} 6081 6082// method id "serviceconsumermanagement.services.tenancyUnits.deleteProject": 6083 6084type ServicesTenancyUnitsDeleteProjectCall struct { 6085 s *APIService 6086 name string 6087 deletetenantprojectrequest *DeleteTenantProjectRequest 6088 urlParams_ gensupport.URLParams 6089 ctx_ context.Context 6090 header_ http.Header 6091} 6092 6093// DeleteProject: Deletes the specified project resource identified by a 6094// tenant resource tag. The mothod removes a project lien with a 6095// 'TenantManager' origin if that was added. It will then attempt to 6096// delete the project. If that operation fails, this method also fails. 6097// After the project has been deleted, the tenant resource state is set 6098// to DELETED. To permanently remove resource metadata, call the 6099// `RemoveTenantProject` method. New resources with the same tag can't 6100// be added if there are existing resources in a DELETED state. 6101// Operation. 6102// 6103// - name: Name of the tenancy unit. Such as 6104// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 6105func (r *ServicesTenancyUnitsService) DeleteProject(name string, deletetenantprojectrequest *DeleteTenantProjectRequest) *ServicesTenancyUnitsDeleteProjectCall { 6106 c := &ServicesTenancyUnitsDeleteProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6107 c.name = name 6108 c.deletetenantprojectrequest = deletetenantprojectrequest 6109 return c 6110} 6111 6112// Fields allows partial responses to be retrieved. See 6113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6114// for more information. 6115func (c *ServicesTenancyUnitsDeleteProjectCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsDeleteProjectCall { 6116 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6117 return c 6118} 6119 6120// Context sets the context to be used in this call's Do method. Any 6121// pending HTTP request will be aborted if the provided context is 6122// canceled. 6123func (c *ServicesTenancyUnitsDeleteProjectCall) Context(ctx context.Context) *ServicesTenancyUnitsDeleteProjectCall { 6124 c.ctx_ = ctx 6125 return c 6126} 6127 6128// Header returns an http.Header that can be modified by the caller to 6129// add HTTP headers to the request. 6130func (c *ServicesTenancyUnitsDeleteProjectCall) Header() http.Header { 6131 if c.header_ == nil { 6132 c.header_ = make(http.Header) 6133 } 6134 return c.header_ 6135} 6136 6137func (c *ServicesTenancyUnitsDeleteProjectCall) doRequest(alt string) (*http.Response, error) { 6138 reqHeaders := make(http.Header) 6139 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 6140 for k, v := range c.header_ { 6141 reqHeaders[k] = v 6142 } 6143 reqHeaders.Set("User-Agent", c.s.userAgent()) 6144 var body io.Reader = nil 6145 body, err := googleapi.WithoutDataWrapper.JSONReader(c.deletetenantprojectrequest) 6146 if err != nil { 6147 return nil, err 6148 } 6149 reqHeaders.Set("Content-Type", "application/json") 6150 c.urlParams_.Set("alt", alt) 6151 c.urlParams_.Set("prettyPrint", "false") 6152 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:deleteProject") 6153 urls += "?" + c.urlParams_.Encode() 6154 req, err := http.NewRequest("POST", urls, body) 6155 if err != nil { 6156 return nil, err 6157 } 6158 req.Header = reqHeaders 6159 googleapi.Expand(req.URL, map[string]string{ 6160 "name": c.name, 6161 }) 6162 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6163} 6164 6165// Do executes the "serviceconsumermanagement.services.tenancyUnits.deleteProject" call. 6166// Exactly one of *Operation or error will be non-nil. Any non-2xx 6167// status code is an error. Response headers are in either 6168// *Operation.ServerResponse.Header or (if a response was returned at 6169// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6170// to check whether the returned error was because 6171// http.StatusNotModified was returned. 6172func (c *ServicesTenancyUnitsDeleteProjectCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6173 gensupport.SetOptions(c.urlParams_, opts...) 6174 res, err := c.doRequest("json") 6175 if res != nil && res.StatusCode == http.StatusNotModified { 6176 if res.Body != nil { 6177 res.Body.Close() 6178 } 6179 return nil, &googleapi.Error{ 6180 Code: res.StatusCode, 6181 Header: res.Header, 6182 } 6183 } 6184 if err != nil { 6185 return nil, err 6186 } 6187 defer googleapi.CloseBody(res) 6188 if err := googleapi.CheckResponse(res); err != nil { 6189 return nil, err 6190 } 6191 ret := &Operation{ 6192 ServerResponse: googleapi.ServerResponse{ 6193 Header: res.Header, 6194 HTTPStatusCode: res.StatusCode, 6195 }, 6196 } 6197 target := &ret 6198 if err := gensupport.DecodeResponse(target, res); err != nil { 6199 return nil, err 6200 } 6201 return ret, nil 6202 // { 6203 // "description": "Deletes the specified project resource identified by a tenant resource tag. The mothod removes a project lien with a 'TenantManager' origin if that was added. It will then attempt to delete the project. If that operation fails, this method also fails. After the project has been deleted, the tenant resource state is set to DELETED. To permanently remove resource metadata, call the `RemoveTenantProject` method. New resources with the same tag can't be added if there are existing resources in a DELETED state. Operation.", 6204 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:deleteProject", 6205 // "httpMethod": "POST", 6206 // "id": "serviceconsumermanagement.services.tenancyUnits.deleteProject", 6207 // "parameterOrder": [ 6208 // "name" 6209 // ], 6210 // "parameters": { 6211 // "name": { 6212 // "description": "Required. Name of the tenancy unit. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 6213 // "location": "path", 6214 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 6215 // "required": true, 6216 // "type": "string" 6217 // } 6218 // }, 6219 // "path": "v1/{+name}:deleteProject", 6220 // "request": { 6221 // "$ref": "DeleteTenantProjectRequest" 6222 // }, 6223 // "response": { 6224 // "$ref": "Operation" 6225 // }, 6226 // "scopes": [ 6227 // "https://www.googleapis.com/auth/cloud-platform" 6228 // ] 6229 // } 6230 6231} 6232 6233// method id "serviceconsumermanagement.services.tenancyUnits.list": 6234 6235type ServicesTenancyUnitsListCall struct { 6236 s *APIService 6237 parent string 6238 urlParams_ gensupport.URLParams 6239 ifNoneMatch_ string 6240 ctx_ context.Context 6241 header_ http.Header 6242} 6243 6244// List: Find the tenancy unit for a managed service and service 6245// consumer. This method shouldn't be used in a service producer's 6246// runtime path, for example to find the tenant project number when 6247// creating VMs. Service producers must persist the tenant project's 6248// information after the project is created. 6249// 6250// - parent: Managed service and service consumer. Required. 6251// services/{service}/{collection id}/{resource id} {collection id} is 6252// the cloud resource collection type representing the service 6253// consumer, for example 'projects', or 'organizations'. {resource id} 6254// is the consumer numeric id, such as project number: '123456'. 6255// {service} the name of a service, such as 'service.googleapis.com'. 6256func (r *ServicesTenancyUnitsService) List(parent string) *ServicesTenancyUnitsListCall { 6257 c := &ServicesTenancyUnitsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6258 c.parent = parent 6259 return c 6260} 6261 6262// Filter sets the optional parameter "filter": Filter expression over 6263// tenancy resources field. Optional. 6264func (c *ServicesTenancyUnitsListCall) Filter(filter string) *ServicesTenancyUnitsListCall { 6265 c.urlParams_.Set("filter", filter) 6266 return c 6267} 6268 6269// PageSize sets the optional parameter "pageSize": The maximum number 6270// of results returned by this request. 6271func (c *ServicesTenancyUnitsListCall) PageSize(pageSize int64) *ServicesTenancyUnitsListCall { 6272 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 6273 return c 6274} 6275 6276// PageToken sets the optional parameter "pageToken": The continuation 6277// token, which is used to page through large result sets. To get the 6278// next page of results, set this parameter to the value of 6279// `nextPageToken` from the previous response. 6280func (c *ServicesTenancyUnitsListCall) PageToken(pageToken string) *ServicesTenancyUnitsListCall { 6281 c.urlParams_.Set("pageToken", pageToken) 6282 return c 6283} 6284 6285// Fields allows partial responses to be retrieved. See 6286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6287// for more information. 6288func (c *ServicesTenancyUnitsListCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsListCall { 6289 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6290 return c 6291} 6292 6293// IfNoneMatch sets the optional parameter which makes the operation 6294// fail if the object's ETag matches the given value. This is useful for 6295// getting updates only after the object has changed since the last 6296// request. Use googleapi.IsNotModified to check whether the response 6297// error from Do is the result of In-None-Match. 6298func (c *ServicesTenancyUnitsListCall) IfNoneMatch(entityTag string) *ServicesTenancyUnitsListCall { 6299 c.ifNoneMatch_ = entityTag 6300 return c 6301} 6302 6303// Context sets the context to be used in this call's Do method. Any 6304// pending HTTP request will be aborted if the provided context is 6305// canceled. 6306func (c *ServicesTenancyUnitsListCall) Context(ctx context.Context) *ServicesTenancyUnitsListCall { 6307 c.ctx_ = ctx 6308 return c 6309} 6310 6311// Header returns an http.Header that can be modified by the caller to 6312// add HTTP headers to the request. 6313func (c *ServicesTenancyUnitsListCall) Header() http.Header { 6314 if c.header_ == nil { 6315 c.header_ = make(http.Header) 6316 } 6317 return c.header_ 6318} 6319 6320func (c *ServicesTenancyUnitsListCall) doRequest(alt string) (*http.Response, error) { 6321 reqHeaders := make(http.Header) 6322 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 6323 for k, v := range c.header_ { 6324 reqHeaders[k] = v 6325 } 6326 reqHeaders.Set("User-Agent", c.s.userAgent()) 6327 if c.ifNoneMatch_ != "" { 6328 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 6329 } 6330 var body io.Reader = nil 6331 c.urlParams_.Set("alt", alt) 6332 c.urlParams_.Set("prettyPrint", "false") 6333 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/tenancyUnits") 6334 urls += "?" + c.urlParams_.Encode() 6335 req, err := http.NewRequest("GET", urls, body) 6336 if err != nil { 6337 return nil, err 6338 } 6339 req.Header = reqHeaders 6340 googleapi.Expand(req.URL, map[string]string{ 6341 "parent": c.parent, 6342 }) 6343 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6344} 6345 6346// Do executes the "serviceconsumermanagement.services.tenancyUnits.list" call. 6347// Exactly one of *ListTenancyUnitsResponse or error will be non-nil. 6348// Any non-2xx status code is an error. Response headers are in either 6349// *ListTenancyUnitsResponse.ServerResponse.Header or (if a response was 6350// returned at all) in error.(*googleapi.Error).Header. Use 6351// googleapi.IsNotModified to check whether the returned error was 6352// because http.StatusNotModified was returned. 6353func (c *ServicesTenancyUnitsListCall) Do(opts ...googleapi.CallOption) (*ListTenancyUnitsResponse, error) { 6354 gensupport.SetOptions(c.urlParams_, opts...) 6355 res, err := c.doRequest("json") 6356 if res != nil && res.StatusCode == http.StatusNotModified { 6357 if res.Body != nil { 6358 res.Body.Close() 6359 } 6360 return nil, &googleapi.Error{ 6361 Code: res.StatusCode, 6362 Header: res.Header, 6363 } 6364 } 6365 if err != nil { 6366 return nil, err 6367 } 6368 defer googleapi.CloseBody(res) 6369 if err := googleapi.CheckResponse(res); err != nil { 6370 return nil, err 6371 } 6372 ret := &ListTenancyUnitsResponse{ 6373 ServerResponse: googleapi.ServerResponse{ 6374 Header: res.Header, 6375 HTTPStatusCode: res.StatusCode, 6376 }, 6377 } 6378 target := &ret 6379 if err := gensupport.DecodeResponse(target, res); err != nil { 6380 return nil, err 6381 } 6382 return ret, nil 6383 // { 6384 // "description": "Find the tenancy unit for a managed service and service consumer. This method shouldn't be used in a service producer's runtime path, for example to find the tenant project number when creating VMs. Service producers must persist the tenant project's information after the project is created.", 6385 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits", 6386 // "httpMethod": "GET", 6387 // "id": "serviceconsumermanagement.services.tenancyUnits.list", 6388 // "parameterOrder": [ 6389 // "parent" 6390 // ], 6391 // "parameters": { 6392 // "filter": { 6393 // "description": "Optional. Filter expression over tenancy resources field. Optional.", 6394 // "location": "query", 6395 // "type": "string" 6396 // }, 6397 // "pageSize": { 6398 // "description": "Optional. The maximum number of results returned by this request.", 6399 // "format": "int32", 6400 // "location": "query", 6401 // "type": "integer" 6402 // }, 6403 // "pageToken": { 6404 // "description": "Optional. The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of `nextPageToken` from the previous response.", 6405 // "location": "query", 6406 // "type": "string" 6407 // }, 6408 // "parent": { 6409 // "description": "Required. Managed service and service consumer. Required. services/{service}/{collection id}/{resource id} {collection id} is the cloud resource collection type representing the service consumer, for example 'projects', or 'organizations'. {resource id} is the consumer numeric id, such as project number: '123456'. {service} the name of a service, such as 'service.googleapis.com'.", 6410 // "location": "path", 6411 // "pattern": "^services/[^/]+/[^/]+/[^/]+$", 6412 // "required": true, 6413 // "type": "string" 6414 // } 6415 // }, 6416 // "path": "v1/{+parent}/tenancyUnits", 6417 // "response": { 6418 // "$ref": "ListTenancyUnitsResponse" 6419 // }, 6420 // "scopes": [ 6421 // "https://www.googleapis.com/auth/cloud-platform" 6422 // ] 6423 // } 6424 6425} 6426 6427// Pages invokes f for each page of results. 6428// A non-nil error returned from f will halt the iteration. 6429// The provided context supersedes any context provided to the Context method. 6430func (c *ServicesTenancyUnitsListCall) Pages(ctx context.Context, f func(*ListTenancyUnitsResponse) error) error { 6431 c.ctx_ = ctx 6432 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 6433 for { 6434 x, err := c.Do() 6435 if err != nil { 6436 return err 6437 } 6438 if err := f(x); err != nil { 6439 return err 6440 } 6441 if x.NextPageToken == "" { 6442 return nil 6443 } 6444 c.PageToken(x.NextPageToken) 6445 } 6446} 6447 6448// method id "serviceconsumermanagement.services.tenancyUnits.removeProject": 6449 6450type ServicesTenancyUnitsRemoveProjectCall struct { 6451 s *APIService 6452 name string 6453 removetenantprojectrequest *RemoveTenantProjectRequest 6454 urlParams_ gensupport.URLParams 6455 ctx_ context.Context 6456 header_ http.Header 6457} 6458 6459// RemoveProject: Removes the specified project resource identified by a 6460// tenant resource tag. The method removes the project lien with 6461// 'TenantManager' origin if that was added. It then attempts to delete 6462// the project. If that operation fails, this method also fails. Calls 6463// to remove already removed or non-existent tenant project succeed. 6464// After the project has been deleted, or if was already in a DELETED 6465// state, resource metadata is permanently removed from the tenancy 6466// unit. Operation. 6467// 6468// - name: Name of the tenancy unit. Such as 6469// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 6470func (r *ServicesTenancyUnitsService) RemoveProject(name string, removetenantprojectrequest *RemoveTenantProjectRequest) *ServicesTenancyUnitsRemoveProjectCall { 6471 c := &ServicesTenancyUnitsRemoveProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6472 c.name = name 6473 c.removetenantprojectrequest = removetenantprojectrequest 6474 return c 6475} 6476 6477// Fields allows partial responses to be retrieved. See 6478// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6479// for more information. 6480func (c *ServicesTenancyUnitsRemoveProjectCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsRemoveProjectCall { 6481 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6482 return c 6483} 6484 6485// Context sets the context to be used in this call's Do method. Any 6486// pending HTTP request will be aborted if the provided context is 6487// canceled. 6488func (c *ServicesTenancyUnitsRemoveProjectCall) Context(ctx context.Context) *ServicesTenancyUnitsRemoveProjectCall { 6489 c.ctx_ = ctx 6490 return c 6491} 6492 6493// Header returns an http.Header that can be modified by the caller to 6494// add HTTP headers to the request. 6495func (c *ServicesTenancyUnitsRemoveProjectCall) Header() http.Header { 6496 if c.header_ == nil { 6497 c.header_ = make(http.Header) 6498 } 6499 return c.header_ 6500} 6501 6502func (c *ServicesTenancyUnitsRemoveProjectCall) doRequest(alt string) (*http.Response, error) { 6503 reqHeaders := make(http.Header) 6504 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 6505 for k, v := range c.header_ { 6506 reqHeaders[k] = v 6507 } 6508 reqHeaders.Set("User-Agent", c.s.userAgent()) 6509 var body io.Reader = nil 6510 body, err := googleapi.WithoutDataWrapper.JSONReader(c.removetenantprojectrequest) 6511 if err != nil { 6512 return nil, err 6513 } 6514 reqHeaders.Set("Content-Type", "application/json") 6515 c.urlParams_.Set("alt", alt) 6516 c.urlParams_.Set("prettyPrint", "false") 6517 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:removeProject") 6518 urls += "?" + c.urlParams_.Encode() 6519 req, err := http.NewRequest("POST", urls, body) 6520 if err != nil { 6521 return nil, err 6522 } 6523 req.Header = reqHeaders 6524 googleapi.Expand(req.URL, map[string]string{ 6525 "name": c.name, 6526 }) 6527 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6528} 6529 6530// Do executes the "serviceconsumermanagement.services.tenancyUnits.removeProject" call. 6531// Exactly one of *Operation or error will be non-nil. Any non-2xx 6532// status code is an error. Response headers are in either 6533// *Operation.ServerResponse.Header or (if a response was returned at 6534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6535// to check whether the returned error was because 6536// http.StatusNotModified was returned. 6537func (c *ServicesTenancyUnitsRemoveProjectCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6538 gensupport.SetOptions(c.urlParams_, opts...) 6539 res, err := c.doRequest("json") 6540 if res != nil && res.StatusCode == http.StatusNotModified { 6541 if res.Body != nil { 6542 res.Body.Close() 6543 } 6544 return nil, &googleapi.Error{ 6545 Code: res.StatusCode, 6546 Header: res.Header, 6547 } 6548 } 6549 if err != nil { 6550 return nil, err 6551 } 6552 defer googleapi.CloseBody(res) 6553 if err := googleapi.CheckResponse(res); err != nil { 6554 return nil, err 6555 } 6556 ret := &Operation{ 6557 ServerResponse: googleapi.ServerResponse{ 6558 Header: res.Header, 6559 HTTPStatusCode: res.StatusCode, 6560 }, 6561 } 6562 target := &ret 6563 if err := gensupport.DecodeResponse(target, res); err != nil { 6564 return nil, err 6565 } 6566 return ret, nil 6567 // { 6568 // "description": "Removes the specified project resource identified by a tenant resource tag. The method removes the project lien with 'TenantManager' origin if that was added. It then attempts to delete the project. If that operation fails, this method also fails. Calls to remove already removed or non-existent tenant project succeed. After the project has been deleted, or if was already in a DELETED state, resource metadata is permanently removed from the tenancy unit. Operation.", 6569 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:removeProject", 6570 // "httpMethod": "POST", 6571 // "id": "serviceconsumermanagement.services.tenancyUnits.removeProject", 6572 // "parameterOrder": [ 6573 // "name" 6574 // ], 6575 // "parameters": { 6576 // "name": { 6577 // "description": "Required. Name of the tenancy unit. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 6578 // "location": "path", 6579 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 6580 // "required": true, 6581 // "type": "string" 6582 // } 6583 // }, 6584 // "path": "v1/{+name}:removeProject", 6585 // "request": { 6586 // "$ref": "RemoveTenantProjectRequest" 6587 // }, 6588 // "response": { 6589 // "$ref": "Operation" 6590 // }, 6591 // "scopes": [ 6592 // "https://www.googleapis.com/auth/cloud-platform" 6593 // ] 6594 // } 6595 6596} 6597 6598// method id "serviceconsumermanagement.services.tenancyUnits.undeleteProject": 6599 6600type ServicesTenancyUnitsUndeleteProjectCall struct { 6601 s *APIService 6602 name string 6603 undeletetenantprojectrequest *UndeleteTenantProjectRequest 6604 urlParams_ gensupport.URLParams 6605 ctx_ context.Context 6606 header_ http.Header 6607} 6608 6609// UndeleteProject: Attempts to undelete a previously deleted tenant 6610// project. The project must be in a DELETED state. There are no 6611// guarantees that an undeleted project will be in a fully restored and 6612// functional state. Call the `ApplyTenantProjectConfig` method to 6613// update its configuration and then validate all managed service 6614// resources. Operation. 6615// 6616// - name: Name of the tenancy unit. Such as 6617// 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'. 6618func (r *ServicesTenancyUnitsService) UndeleteProject(name string, undeletetenantprojectrequest *UndeleteTenantProjectRequest) *ServicesTenancyUnitsUndeleteProjectCall { 6619 c := &ServicesTenancyUnitsUndeleteProjectCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6620 c.name = name 6621 c.undeletetenantprojectrequest = undeletetenantprojectrequest 6622 return c 6623} 6624 6625// Fields allows partial responses to be retrieved. See 6626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6627// for more information. 6628func (c *ServicesTenancyUnitsUndeleteProjectCall) Fields(s ...googleapi.Field) *ServicesTenancyUnitsUndeleteProjectCall { 6629 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6630 return c 6631} 6632 6633// Context sets the context to be used in this call's Do method. Any 6634// pending HTTP request will be aborted if the provided context is 6635// canceled. 6636func (c *ServicesTenancyUnitsUndeleteProjectCall) Context(ctx context.Context) *ServicesTenancyUnitsUndeleteProjectCall { 6637 c.ctx_ = ctx 6638 return c 6639} 6640 6641// Header returns an http.Header that can be modified by the caller to 6642// add HTTP headers to the request. 6643func (c *ServicesTenancyUnitsUndeleteProjectCall) Header() http.Header { 6644 if c.header_ == nil { 6645 c.header_ = make(http.Header) 6646 } 6647 return c.header_ 6648} 6649 6650func (c *ServicesTenancyUnitsUndeleteProjectCall) doRequest(alt string) (*http.Response, error) { 6651 reqHeaders := make(http.Header) 6652 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210812") 6653 for k, v := range c.header_ { 6654 reqHeaders[k] = v 6655 } 6656 reqHeaders.Set("User-Agent", c.s.userAgent()) 6657 var body io.Reader = nil 6658 body, err := googleapi.WithoutDataWrapper.JSONReader(c.undeletetenantprojectrequest) 6659 if err != nil { 6660 return nil, err 6661 } 6662 reqHeaders.Set("Content-Type", "application/json") 6663 c.urlParams_.Set("alt", alt) 6664 c.urlParams_.Set("prettyPrint", "false") 6665 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:undeleteProject") 6666 urls += "?" + c.urlParams_.Encode() 6667 req, err := http.NewRequest("POST", urls, body) 6668 if err != nil { 6669 return nil, err 6670 } 6671 req.Header = reqHeaders 6672 googleapi.Expand(req.URL, map[string]string{ 6673 "name": c.name, 6674 }) 6675 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6676} 6677 6678// Do executes the "serviceconsumermanagement.services.tenancyUnits.undeleteProject" call. 6679// Exactly one of *Operation or error will be non-nil. Any non-2xx 6680// status code is an error. Response headers are in either 6681// *Operation.ServerResponse.Header or (if a response was returned at 6682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6683// to check whether the returned error was because 6684// http.StatusNotModified was returned. 6685func (c *ServicesTenancyUnitsUndeleteProjectCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6686 gensupport.SetOptions(c.urlParams_, opts...) 6687 res, err := c.doRequest("json") 6688 if res != nil && res.StatusCode == http.StatusNotModified { 6689 if res.Body != nil { 6690 res.Body.Close() 6691 } 6692 return nil, &googleapi.Error{ 6693 Code: res.StatusCode, 6694 Header: res.Header, 6695 } 6696 } 6697 if err != nil { 6698 return nil, err 6699 } 6700 defer googleapi.CloseBody(res) 6701 if err := googleapi.CheckResponse(res); err != nil { 6702 return nil, err 6703 } 6704 ret := &Operation{ 6705 ServerResponse: googleapi.ServerResponse{ 6706 Header: res.Header, 6707 HTTPStatusCode: res.StatusCode, 6708 }, 6709 } 6710 target := &ret 6711 if err := gensupport.DecodeResponse(target, res); err != nil { 6712 return nil, err 6713 } 6714 return ret, nil 6715 // { 6716 // "description": "Attempts to undelete a previously deleted tenant project. The project must be in a DELETED state. There are no guarantees that an undeleted project will be in a fully restored and functional state. Call the `ApplyTenantProjectConfig` method to update its configuration and then validate all managed service resources. Operation.", 6717 // "flatPath": "v1/services/{servicesId}/{servicesId1}/{servicesId2}/tenancyUnits/{tenancyUnitsId}:undeleteProject", 6718 // "httpMethod": "POST", 6719 // "id": "serviceconsumermanagement.services.tenancyUnits.undeleteProject", 6720 // "parameterOrder": [ 6721 // "name" 6722 // ], 6723 // "parameters": { 6724 // "name": { 6725 // "description": "Required. Name of the tenancy unit. Such as 'services/service.googleapis.com/projects/12345/tenancyUnits/abcd'.", 6726 // "location": "path", 6727 // "pattern": "^services/[^/]+/[^/]+/[^/]+/tenancyUnits/[^/]+$", 6728 // "required": true, 6729 // "type": "string" 6730 // } 6731 // }, 6732 // "path": "v1/{+name}:undeleteProject", 6733 // "request": { 6734 // "$ref": "UndeleteTenantProjectRequest" 6735 // }, 6736 // "response": { 6737 // "$ref": "Operation" 6738 // }, 6739 // "scopes": [ 6740 // "https://www.googleapis.com/auth/cloud-platform" 6741 // ] 6742 // } 6743 6744} 6745