1// Copyright 2020 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 servicemanagement provides access to the Service Management API. 8// 9// For product documentation, see: https://cloud.google.com/service-management/ 10// 11// Creating a client 12// 13// Usage example: 14// 15// import "google.golang.org/api/servicemanagement/v1" 16// ... 17// ctx := context.Background() 18// servicemanagementService, err := servicemanagement.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// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes: 27// 28// servicemanagementService, err := servicemanagement.NewService(ctx, option.WithScopes(servicemanagement.ServiceManagementReadonlyScope)) 29// 30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: 31// 32// servicemanagementService, err := servicemanagement.NewService(ctx, option.WithAPIKey("AIza...")) 33// 34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: 35// 36// config := &oauth2.Config{...} 37// // ... 38// token, err := config.Exchange(ctx, ...) 39// servicemanagementService, err := servicemanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) 40// 41// See https://godoc.org/google.golang.org/api/option/ for details on options. 42package servicemanagement // import "google.golang.org/api/servicemanagement/v1" 43 44import ( 45 "bytes" 46 "context" 47 "encoding/json" 48 "errors" 49 "fmt" 50 "io" 51 "net/http" 52 "net/url" 53 "strconv" 54 "strings" 55 56 googleapi "google.golang.org/api/googleapi" 57 gensupport "google.golang.org/api/internal/gensupport" 58 option "google.golang.org/api/option" 59 internaloption "google.golang.org/api/option/internaloption" 60 htransport "google.golang.org/api/transport/http" 61) 62 63// Always reference these packages, just in case the auto-generated code 64// below doesn't. 65var _ = bytes.NewBuffer 66var _ = strconv.Itoa 67var _ = fmt.Sprintf 68var _ = json.NewDecoder 69var _ = io.Copy 70var _ = url.Parse 71var _ = gensupport.MarshalJSON 72var _ = googleapi.Version 73var _ = errors.New 74var _ = strings.Replace 75var _ = context.Canceled 76var _ = internaloption.WithDefaultEndpoint 77 78const apiId = "servicemanagement:v1" 79const apiName = "servicemanagement" 80const apiVersion = "v1" 81const basePath = "https://servicemanagement.googleapis.com/" 82 83// OAuth2 scopes used by this API. 84const ( 85 // View and manage your data across Google Cloud Platform services 86 CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" 87 88 // View your data across Google Cloud Platform services 89 CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only" 90 91 // Manage your Google API service configuration 92 ServiceManagementScope = "https://www.googleapis.com/auth/service.management" 93 94 // View your Google API service configuration 95 ServiceManagementReadonlyScope = "https://www.googleapis.com/auth/service.management.readonly" 96) 97 98// NewService creates a new APIService. 99func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) { 100 scopesOption := option.WithScopes( 101 "https://www.googleapis.com/auth/cloud-platform", 102 "https://www.googleapis.com/auth/cloud-platform.read-only", 103 "https://www.googleapis.com/auth/service.management", 104 "https://www.googleapis.com/auth/service.management.readonly", 105 ) 106 // NOTE: prepend, so we don't override user-specified scopes. 107 opts = append([]option.ClientOption{scopesOption}, opts...) 108 opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) 109 client, endpoint, err := htransport.NewClient(ctx, opts...) 110 if err != nil { 111 return nil, err 112 } 113 s, err := New(client) 114 if err != nil { 115 return nil, err 116 } 117 if endpoint != "" { 118 s.BasePath = endpoint 119 } 120 return s, nil 121} 122 123// New creates a new APIService. It uses the provided http.Client for requests. 124// 125// Deprecated: please use NewService instead. 126// To provide a custom HTTP client, use option.WithHTTPClient. 127// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. 128func New(client *http.Client) (*APIService, error) { 129 if client == nil { 130 return nil, errors.New("client is nil") 131 } 132 s := &APIService{client: client, BasePath: basePath} 133 s.Operations = NewOperationsService(s) 134 s.Services = NewServicesService(s) 135 return s, nil 136} 137 138type APIService struct { 139 client *http.Client 140 BasePath string // API endpoint base URL 141 UserAgent string // optional additional User-Agent fragment 142 143 Operations *OperationsService 144 145 Services *ServicesService 146} 147 148func (s *APIService) userAgent() string { 149 if s.UserAgent == "" { 150 return googleapi.UserAgent 151 } 152 return googleapi.UserAgent + " " + s.UserAgent 153} 154 155func NewOperationsService(s *APIService) *OperationsService { 156 rs := &OperationsService{s: s} 157 return rs 158} 159 160type OperationsService struct { 161 s *APIService 162} 163 164func NewServicesService(s *APIService) *ServicesService { 165 rs := &ServicesService{s: s} 166 rs.Configs = NewServicesConfigsService(s) 167 rs.Consumers = NewServicesConsumersService(s) 168 rs.Rollouts = NewServicesRolloutsService(s) 169 return rs 170} 171 172type ServicesService struct { 173 s *APIService 174 175 Configs *ServicesConfigsService 176 177 Consumers *ServicesConsumersService 178 179 Rollouts *ServicesRolloutsService 180} 181 182func NewServicesConfigsService(s *APIService) *ServicesConfigsService { 183 rs := &ServicesConfigsService{s: s} 184 return rs 185} 186 187type ServicesConfigsService struct { 188 s *APIService 189} 190 191func NewServicesConsumersService(s *APIService) *ServicesConsumersService { 192 rs := &ServicesConsumersService{s: s} 193 return rs 194} 195 196type ServicesConsumersService struct { 197 s *APIService 198} 199 200func NewServicesRolloutsService(s *APIService) *ServicesRolloutsService { 201 rs := &ServicesRolloutsService{s: s} 202 return rs 203} 204 205type ServicesRolloutsService struct { 206 s *APIService 207} 208 209// Advice: Generated advice about this change, used for providing 210// more 211// information about how a change will affect the existing service. 212type Advice struct { 213 // Description: Useful description for why this advice was applied and 214 // what actions should 215 // be taken to mitigate any implied risks. 216 Description string `json:"description,omitempty"` 217 218 // ForceSendFields is a list of field names (e.g. "Description") to 219 // unconditionally include in API requests. By default, fields with 220 // empty values are omitted from API requests. However, any non-pointer, 221 // non-interface field appearing in ForceSendFields will be sent to the 222 // server regardless of whether the field is empty or not. This may be 223 // used to include empty fields in Patch requests. 224 ForceSendFields []string `json:"-"` 225 226 // NullFields is a list of field names (e.g. "Description") to include 227 // in API requests with the JSON null value. By default, fields with 228 // empty values are omitted from API requests. However, any field with 229 // an empty value appearing in NullFields will be sent to the server as 230 // null. It is an error if a field in this list has a non-empty value. 231 // This may be used to include null fields in Patch requests. 232 NullFields []string `json:"-"` 233} 234 235func (s *Advice) MarshalJSON() ([]byte, error) { 236 type NoMethod Advice 237 raw := NoMethod(*s) 238 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 239} 240 241// Api: Api is a light-weight descriptor for an API 242// Interface. 243// 244// Interfaces are also described as "protocol buffer services" in some 245// contexts, 246// such as by the "service" keyword in a .proto file, but they are 247// different 248// from API Services, which represent a concrete implementation of an 249// interface 250// as opposed to simply a description of methods and bindings. They are 251// also 252// sometimes simply referred to as "APIs" in other contexts, such as the 253// name of 254// this message itself. See 255// https://cloud.google.com/apis/design/glossary for 256// detailed terminology. 257type Api struct { 258 // Methods: The methods of this interface, in unspecified order. 259 Methods []*Method `json:"methods,omitempty"` 260 261 // Mixins: Included interfaces. See Mixin. 262 Mixins []*Mixin `json:"mixins,omitempty"` 263 264 // Name: The fully qualified name of this interface, including package 265 // name 266 // followed by the interface's simple name. 267 Name string `json:"name,omitempty"` 268 269 // Options: Any metadata attached to the interface. 270 Options []*Option `json:"options,omitempty"` 271 272 // SourceContext: Source context for the protocol buffer service 273 // represented by this 274 // message. 275 SourceContext *SourceContext `json:"sourceContext,omitempty"` 276 277 // Syntax: The source syntax of the service. 278 // 279 // Possible values: 280 // "SYNTAX_PROTO2" - Syntax `proto2`. 281 // "SYNTAX_PROTO3" - Syntax `proto3`. 282 Syntax string `json:"syntax,omitempty"` 283 284 // Version: A version string for this interface. If specified, must have 285 // the form 286 // `major-version.minor-version`, as in `1.10`. If the minor version 287 // is 288 // omitted, it defaults to zero. If the entire version field is empty, 289 // the 290 // major version is derived from the package name, as outlined below. If 291 // the 292 // field is not empty, the version in the package name will be verified 293 // to be 294 // consistent with what is provided here. 295 // 296 // The versioning schema uses [semantic 297 // versioning](http://semver.org) where the major version 298 // number 299 // indicates a breaking change and the minor version an 300 // additive, 301 // non-breaking change. Both version numbers are signals to users 302 // what to expect from different versions, and should be 303 // carefully 304 // chosen based on the product plan. 305 // 306 // The major version is also reflected in the package name of 307 // the 308 // interface, which must end in `v<major-version>`, as 309 // in 310 // `google.feature.v1`. For major versions 0 and 1, the suffix can 311 // be omitted. Zero major versions must only be used for 312 // experimental, non-GA interfaces. 313 // 314 Version string `json:"version,omitempty"` 315 316 // ForceSendFields is a list of field names (e.g. "Methods") to 317 // unconditionally include in API requests. By default, fields with 318 // empty values are omitted from API requests. However, any non-pointer, 319 // non-interface field appearing in ForceSendFields will be sent to the 320 // server regardless of whether the field is empty or not. This may be 321 // used to include empty fields in Patch requests. 322 ForceSendFields []string `json:"-"` 323 324 // NullFields is a list of field names (e.g. "Methods") to include in 325 // API requests with the JSON null value. By default, fields with empty 326 // values are omitted from API requests. However, any field with an 327 // empty value appearing in NullFields will be sent to the server as 328 // null. It is an error if a field in this list has a non-empty value. 329 // This may be used to include null fields in Patch requests. 330 NullFields []string `json:"-"` 331} 332 333func (s *Api) MarshalJSON() ([]byte, error) { 334 type NoMethod Api 335 raw := NoMethod(*s) 336 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 337} 338 339// AuditConfig: Specifies the audit configuration for a service. 340// The configuration determines which permission types are logged, and 341// what 342// identities, if any, are exempted from logging. 343// An AuditConfig must have one or more AuditLogConfigs. 344// 345// If there are AuditConfigs for both `allServices` and a specific 346// service, 347// the union of the two AuditConfigs is used for that service: the 348// log_types 349// specified in each AuditConfig are enabled, and the exempted_members 350// in each 351// AuditLogConfig are exempted. 352// 353// Example Policy with multiple AuditConfigs: 354// 355// { 356// "audit_configs": [ 357// { 358// "service": "allServices" 359// "audit_log_configs": [ 360// { 361// "log_type": "DATA_READ", 362// "exempted_members": [ 363// "user:jose@example.com" 364// ] 365// }, 366// { 367// "log_type": "DATA_WRITE", 368// }, 369// { 370// "log_type": "ADMIN_READ", 371// } 372// ] 373// }, 374// { 375// "service": "sampleservice.googleapis.com" 376// "audit_log_configs": [ 377// { 378// "log_type": "DATA_READ", 379// }, 380// { 381// "log_type": "DATA_WRITE", 382// "exempted_members": [ 383// "user:aliya@example.com" 384// ] 385// } 386// ] 387// } 388// ] 389// } 390// 391// For sampleservice, this policy enables DATA_READ, DATA_WRITE and 392// ADMIN_READ 393// logging. It also exempts jose@example.com from DATA_READ logging, 394// and 395// aliya@example.com from DATA_WRITE logging. 396type AuditConfig struct { 397 // AuditLogConfigs: The configuration for logging of each type of 398 // permission. 399 AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"` 400 401 // Service: Specifies a service that will be enabled for audit 402 // logging. 403 // For example, `storage.googleapis.com`, 404 // `cloudsql.googleapis.com`. 405 // `allServices` is a special value that covers all services. 406 Service string `json:"service,omitempty"` 407 408 // ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to 409 // unconditionally include in API requests. By default, fields with 410 // empty values are omitted from API requests. However, any non-pointer, 411 // non-interface field appearing in ForceSendFields will be sent to the 412 // server regardless of whether the field is empty or not. This may be 413 // used to include empty fields in Patch requests. 414 ForceSendFields []string `json:"-"` 415 416 // NullFields is a list of field names (e.g. "AuditLogConfigs") to 417 // include in API requests with the JSON null value. By default, fields 418 // with empty values are omitted from API requests. However, any field 419 // with an empty value appearing in NullFields will be sent to the 420 // server as null. It is an error if a field in this list has a 421 // non-empty value. This may be used to include null fields in Patch 422 // requests. 423 NullFields []string `json:"-"` 424} 425 426func (s *AuditConfig) MarshalJSON() ([]byte, error) { 427 type NoMethod AuditConfig 428 raw := NoMethod(*s) 429 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 430} 431 432// AuditLogConfig: Provides the configuration for logging a type of 433// permissions. 434// Example: 435// 436// { 437// "audit_log_configs": [ 438// { 439// "log_type": "DATA_READ", 440// "exempted_members": [ 441// "user:jose@example.com" 442// ] 443// }, 444// { 445// "log_type": "DATA_WRITE", 446// } 447// ] 448// } 449// 450// This enables 'DATA_READ' and 'DATA_WRITE' logging, while 451// exempting 452// jose@example.com from DATA_READ logging. 453type AuditLogConfig struct { 454 // ExemptedMembers: Specifies the identities that do not cause logging 455 // for this type of 456 // permission. 457 // Follows the same format of Binding.members. 458 ExemptedMembers []string `json:"exemptedMembers,omitempty"` 459 460 // LogType: The log type that this config enables. 461 // 462 // Possible values: 463 // "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this. 464 // "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy 465 // "DATA_WRITE" - Data writes. Example: CloudSQL Users create 466 // "DATA_READ" - Data reads. Example: CloudSQL Users list 467 LogType string `json:"logType,omitempty"` 468 469 // ForceSendFields is a list of field names (e.g. "ExemptedMembers") to 470 // unconditionally include in API requests. By default, fields with 471 // empty values are omitted from API requests. However, any non-pointer, 472 // non-interface field appearing in ForceSendFields will be sent to the 473 // server regardless of whether the field is empty or not. This may be 474 // used to include empty fields in Patch requests. 475 ForceSendFields []string `json:"-"` 476 477 // NullFields is a list of field names (e.g. "ExemptedMembers") to 478 // include in API requests with the JSON null value. By default, fields 479 // with empty values are omitted from API requests. However, any field 480 // with an empty value appearing in NullFields will be sent to the 481 // server as null. It is an error if a field in this list has a 482 // non-empty value. This may be used to include null fields in Patch 483 // requests. 484 NullFields []string `json:"-"` 485} 486 487func (s *AuditLogConfig) MarshalJSON() ([]byte, error) { 488 type NoMethod AuditLogConfig 489 raw := NoMethod(*s) 490 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 491} 492 493// AuthProvider: Configuration for an authentication provider, including 494// support for 495// [JSON Web 496// Token 497// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-tok 498// en-32). 499type AuthProvider struct { 500 // Audiences: The list of 501 // JWT 502 // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web- 503 // token-32#section-4.1.3). 504 // that are allowed to access. A JWT containing any of these audiences 505 // will 506 // be accepted. When this setting is absent, only JWTs with 507 // audience 508 // "https://Service_name/API_name" 509 // will be accepted. For example, if no audiences are in the 510 // setting, 511 // LibraryService API will only accept JWTs with the following 512 // audience 513 // "https://library-example.googleapis.com/google.example.librar 514 // y.v1.LibraryService". 515 // 516 // Example: 517 // 518 // audiences: bookstore_android.apps.googleusercontent.com, 519 // bookstore_web.apps.googleusercontent.com 520 Audiences string `json:"audiences,omitempty"` 521 522 // AuthorizationUrl: Redirect URL if JWT token is required but not 523 // present or is expired. 524 // Implement authorizationUrl of securityDefinitions in OpenAPI spec. 525 AuthorizationUrl string `json:"authorizationUrl,omitempty"` 526 527 // Id: The unique identifier of the auth provider. It will be referred 528 // to by 529 // `AuthRequirement.provider_id`. 530 // 531 // Example: "bookstore_auth". 532 Id string `json:"id,omitempty"` 533 534 // Issuer: Identifies the principal that issued the JWT. 535 // See 536 // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#sec 537 // tion-4.1.1 538 // Usually a URL or an email address. 539 // 540 // Example: https://securetoken.google.com 541 // Example: 1234567-compute@developer.gserviceaccount.com 542 Issuer string `json:"issuer,omitempty"` 543 544 // JwksUri: URL of the provider's public key set to validate signature 545 // of the JWT. 546 // See 547 // [OpenID 548 // Discovery](https://openid.net/specs/openid-connect-discove 549 // ry-1_0.html#ProviderMetadata). 550 // Optional if the key set document: 551 // - can be retrieved from 552 // [OpenID 553 // 554 // Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html 555 // of 556 // the issuer. 557 // - can be inferred from the email domain of the issuer (e.g. a 558 // Google 559 // service account). 560 // 561 // Example: https://www.googleapis.com/oauth2/v1/certs 562 JwksUri string `json:"jwksUri,omitempty"` 563 564 // ForceSendFields is a list of field names (e.g. "Audiences") to 565 // unconditionally include in API requests. By default, fields with 566 // empty values are omitted from API requests. However, any non-pointer, 567 // non-interface field appearing in ForceSendFields will be sent to the 568 // server regardless of whether the field is empty or not. This may be 569 // used to include empty fields in Patch requests. 570 ForceSendFields []string `json:"-"` 571 572 // NullFields is a list of field names (e.g. "Audiences") to include in 573 // API requests with the JSON null value. By default, fields with empty 574 // values are omitted from API requests. However, any field with an 575 // empty value appearing in NullFields will be sent to the server as 576 // null. It is an error if a field in this list has a non-empty value. 577 // This may be used to include null fields in Patch requests. 578 NullFields []string `json:"-"` 579} 580 581func (s *AuthProvider) MarshalJSON() ([]byte, error) { 582 type NoMethod AuthProvider 583 raw := NoMethod(*s) 584 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 585} 586 587// AuthRequirement: User-defined authentication requirements, including 588// support for 589// [JSON Web 590// Token 591// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-tok 592// en-32). 593type AuthRequirement struct { 594 // Audiences: NOTE: This will be deprecated soon, once 595 // AuthProvider.audiences is 596 // implemented and accepted in all the runtime components. 597 // 598 // The list of 599 // JWT 600 // [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web- 601 // token-32#section-4.1.3). 602 // that are allowed to access. A JWT containing any of these audiences 603 // will 604 // be accepted. When this setting is absent, only JWTs with 605 // audience 606 // "https://Service_name/API_name" 607 // will be accepted. For example, if no audiences are in the 608 // setting, 609 // LibraryService API will only accept JWTs with the following 610 // audience 611 // "https://library-example.googleapis.com/google.example.librar 612 // y.v1.LibraryService". 613 // 614 // Example: 615 // 616 // audiences: bookstore_android.apps.googleusercontent.com, 617 // bookstore_web.apps.googleusercontent.com 618 Audiences string `json:"audiences,omitempty"` 619 620 // ProviderId: id from authentication provider. 621 // 622 // Example: 623 // 624 // provider_id: bookstore_auth 625 ProviderId string `json:"providerId,omitempty"` 626 627 // ForceSendFields is a list of field names (e.g. "Audiences") to 628 // unconditionally include in API requests. By default, fields with 629 // empty values are omitted from API requests. However, any non-pointer, 630 // non-interface field appearing in ForceSendFields will be sent to the 631 // server regardless of whether the field is empty or not. This may be 632 // used to include empty fields in Patch requests. 633 ForceSendFields []string `json:"-"` 634 635 // NullFields is a list of field names (e.g. "Audiences") to include in 636 // API requests with the JSON null value. By default, fields with empty 637 // values are omitted from API requests. However, any field with an 638 // empty value appearing in NullFields will be sent to the server as 639 // null. It is an error if a field in this list has a non-empty value. 640 // This may be used to include null fields in Patch requests. 641 NullFields []string `json:"-"` 642} 643 644func (s *AuthRequirement) MarshalJSON() ([]byte, error) { 645 type NoMethod AuthRequirement 646 raw := NoMethod(*s) 647 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 648} 649 650// Authentication: `Authentication` defines the authentication 651// configuration for an API. 652// 653// Example for an API targeted for external use: 654// 655// name: calendar.googleapis.com 656// authentication: 657// providers: 658// - id: google_calendar_auth 659// jwks_uri: https://www.googleapis.com/oauth2/v1/certs 660// issuer: https://securetoken.google.com 661// rules: 662// - selector: "*" 663// requirements: 664// provider_id: google_calendar_auth 665type Authentication struct { 666 // Providers: Defines a set of authentication providers that a service 667 // supports. 668 Providers []*AuthProvider `json:"providers,omitempty"` 669 670 // Rules: A list of authentication rules that apply to individual API 671 // methods. 672 // 673 // **NOTE:** All service configuration rules follow "last one wins" 674 // order. 675 Rules []*AuthenticationRule `json:"rules,omitempty"` 676 677 // ForceSendFields is a list of field names (e.g. "Providers") to 678 // unconditionally include in API requests. By default, fields with 679 // empty values are omitted from API requests. However, any non-pointer, 680 // non-interface field appearing in ForceSendFields will be sent to the 681 // server regardless of whether the field is empty or not. This may be 682 // used to include empty fields in Patch requests. 683 ForceSendFields []string `json:"-"` 684 685 // NullFields is a list of field names (e.g. "Providers") 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 *Authentication) MarshalJSON() ([]byte, error) { 695 type NoMethod Authentication 696 raw := NoMethod(*s) 697 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 698} 699 700// AuthenticationRule: Authentication rules for the service. 701// 702// By default, if a method has any authentication requirements, every 703// request 704// must include a valid credential matching one of the 705// requirements. 706// It's an error to include more than one kind of credential in a 707// single 708// request. 709// 710// If a method doesn't have any auth requirements, request credentials 711// will be 712// ignored. 713type AuthenticationRule struct { 714 // AllowWithoutCredential: If true, the service accepts API keys without 715 // any other credential. 716 AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"` 717 718 // Oauth: The requirements for OAuth credentials. 719 Oauth *OAuthRequirements `json:"oauth,omitempty"` 720 721 // Requirements: Requirements for additional authentication providers. 722 Requirements []*AuthRequirement `json:"requirements,omitempty"` 723 724 // Selector: Selects the methods to which this rule applies. 725 // 726 // Refer to selector for syntax details. 727 Selector string `json:"selector,omitempty"` 728 729 // ForceSendFields is a list of field names (e.g. 730 // "AllowWithoutCredential") to unconditionally include in API requests. 731 // By default, fields with empty values are omitted from API requests. 732 // However, any non-pointer, non-interface field appearing in 733 // ForceSendFields will be sent to the server regardless of whether the 734 // field is empty or not. This may be used to include empty fields in 735 // Patch requests. 736 ForceSendFields []string `json:"-"` 737 738 // NullFields is a list of field names (e.g. "AllowWithoutCredential") 739 // to include in API requests with the JSON null value. By default, 740 // fields with empty values are omitted from API requests. However, any 741 // field with an empty value appearing in NullFields will be sent to the 742 // server as null. It is an error if a field in this list has a 743 // non-empty value. This may be used to include null fields in Patch 744 // requests. 745 NullFields []string `json:"-"` 746} 747 748func (s *AuthenticationRule) MarshalJSON() ([]byte, error) { 749 type NoMethod AuthenticationRule 750 raw := NoMethod(*s) 751 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 752} 753 754// Backend: `Backend` defines the backend configuration for a service. 755type Backend struct { 756 // Rules: A list of API backend rules that apply to individual API 757 // methods. 758 // 759 // **NOTE:** All service configuration rules follow "last one wins" 760 // order. 761 Rules []*BackendRule `json:"rules,omitempty"` 762 763 // ForceSendFields is a list of field names (e.g. "Rules") to 764 // unconditionally include in API requests. By default, fields with 765 // empty values are omitted from API requests. However, any non-pointer, 766 // non-interface field appearing in ForceSendFields will be sent to the 767 // server regardless of whether the field is empty or not. This may be 768 // used to include empty fields in Patch requests. 769 ForceSendFields []string `json:"-"` 770 771 // NullFields is a list of field names (e.g. "Rules") to include in API 772 // requests with the JSON null value. By default, fields with empty 773 // values are omitted from API requests. However, any field with an 774 // empty value appearing in NullFields will be sent to the server as 775 // null. It is an error if a field in this list has a non-empty value. 776 // This may be used to include null fields in Patch requests. 777 NullFields []string `json:"-"` 778} 779 780func (s *Backend) MarshalJSON() ([]byte, error) { 781 type NoMethod Backend 782 raw := NoMethod(*s) 783 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 784} 785 786// BackendRule: A backend rule provides configuration for an individual 787// API element. 788type BackendRule struct { 789 // Address: The address of the API backend. 790 // 791 // The scheme is used to determine the backend protocol and 792 // security. 793 // The following schemes are accepted: 794 // 795 // SCHEME PROTOCOL SECURITY 796 // http:// HTTP None 797 // https:// HTTP TLS 798 // grpc:// gRPC None 799 // grpcs:// gRPC TLS 800 // 801 // It is recommended to explicitly include a scheme. Leaving out the 802 // scheme 803 // may cause constrasting behaviors across platforms. 804 // 805 // If the port is unspecified, the default is: 806 // - 80 for schemes without TLS 807 // - 443 for schemes with TLS 808 // 809 // For HTTP backends, use protocol 810 // to specify the protocol version. 811 Address string `json:"address,omitempty"` 812 813 // Deadline: The number of seconds to wait for a response from a 814 // request. The default 815 // varies based on the request protocol and deployment environment. 816 Deadline float64 `json:"deadline,omitempty"` 817 818 // DisableAuth: When disable_auth is true, a JWT ID token won't be 819 // generated and the 820 // original "Authorization" HTTP header will be preserved. If the header 821 // is 822 // used to carry the original token and is expected by the backend, 823 // this 824 // field must be set to true to preserve the header. 825 DisableAuth bool `json:"disableAuth,omitempty"` 826 827 // JwtAudience: The JWT audience is used when generating a JWT ID token 828 // for the backend. 829 // This ID token will be added in the HTTP "authorization" header, and 830 // sent 831 // to the backend. 832 JwtAudience string `json:"jwtAudience,omitempty"` 833 834 // MinDeadline: Minimum deadline in seconds needed for this method. 835 // Calls having deadline 836 // value lower than this will be rejected. 837 MinDeadline float64 `json:"minDeadline,omitempty"` 838 839 // OperationDeadline: The number of seconds to wait for the completion 840 // of a long running 841 // operation. The default is no deadline. 842 OperationDeadline float64 `json:"operationDeadline,omitempty"` 843 844 // Possible values: 845 // "PATH_TRANSLATION_UNSPECIFIED" 846 // "CONSTANT_ADDRESS" - Use the backend address as-is, with no 847 // modification to the path. If the 848 // URL pattern contains variables, the variable names and values will 849 // be 850 // appended to the query string. If a query string parameter and a 851 // URL 852 // pattern variable have the same name, this may result in duplicate 853 // keys in 854 // the query string. 855 // 856 // # Examples 857 // 858 // Given the following operation config: 859 // 860 // Method path: /api/company/{cid}/user/{uid} 861 // Backend address: 862 // https://example.cloudfunctions.net/getUser 863 // 864 // Requests to the following request paths will call the backend at 865 // the 866 // translated path: 867 // 868 // Request path: /api/company/widgetworks/user/johndoe 869 // Translated: 870 // 871 // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe 872 // 873 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 874 // Translated: 875 // 876 // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe 877 // "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the 878 // backend address. 879 // 880 // # Examples 881 // 882 // Given the following operation config: 883 // 884 // Method path: /api/company/{cid}/user/{uid} 885 // Backend address: https://example.appspot.com 886 // 887 // Requests to the following request paths will call the backend at 888 // the 889 // translated path: 890 // 891 // Request path: /api/company/widgetworks/user/johndoe 892 // Translated: 893 // 894 // https://example.appspot.com/api/company/widgetworks/user/johndoe 895 // 896 // Request path: /api/company/widgetworks/user/johndoe?timezone=EST 897 // Translated: 898 // 899 // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST 900 PathTranslation string `json:"pathTranslation,omitempty"` 901 902 // Protocol: The protocol used for sending a request to the backend. 903 // The supported values are "http/1.1" and "h2". 904 // 905 // The default value is inferred from the scheme in the 906 // address field: 907 // 908 // SCHEME PROTOCOL 909 // http:// http/1.1 910 // https:// http/1.1 911 // grpc:// h2 912 // grpcs:// h2 913 // 914 // For secure HTTP backends (https://) that support HTTP/2, set this 915 // field 916 // to "h2" for improved performance. 917 // 918 // Configuring this field to non-default values is only supported for 919 // secure 920 // HTTP backends. This field will be ignored for all other 921 // backends. 922 // 923 // See 924 // https://www.iana.org/assignments/tls-extensiontype-valu 925 // es/tls-extensiontype-values.xhtml#alpn-protocol-ids 926 // for more details on the supported values. 927 Protocol string `json:"protocol,omitempty"` 928 929 // Selector: Selects the methods to which this rule applies. 930 // 931 // Refer to selector for syntax details. 932 Selector string `json:"selector,omitempty"` 933 934 // ForceSendFields is a list of field names (e.g. "Address") to 935 // unconditionally include in API requests. By default, fields with 936 // empty values are omitted from API requests. However, any non-pointer, 937 // non-interface field appearing in ForceSendFields will be sent to the 938 // server regardless of whether the field is empty or not. This may be 939 // used to include empty fields in Patch requests. 940 ForceSendFields []string `json:"-"` 941 942 // NullFields is a list of field names (e.g. "Address") to include in 943 // API requests with the JSON null value. By default, fields with empty 944 // values are omitted from API requests. However, any field with an 945 // empty value appearing in NullFields will be sent to the server as 946 // null. It is an error if a field in this list has a non-empty value. 947 // This may be used to include null fields in Patch requests. 948 NullFields []string `json:"-"` 949} 950 951func (s *BackendRule) MarshalJSON() ([]byte, error) { 952 type NoMethod BackendRule 953 raw := NoMethod(*s) 954 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 955} 956 957func (s *BackendRule) UnmarshalJSON(data []byte) error { 958 type NoMethod BackendRule 959 var s1 struct { 960 Deadline gensupport.JSONFloat64 `json:"deadline"` 961 MinDeadline gensupport.JSONFloat64 `json:"minDeadline"` 962 OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"` 963 *NoMethod 964 } 965 s1.NoMethod = (*NoMethod)(s) 966 if err := json.Unmarshal(data, &s1); err != nil { 967 return err 968 } 969 s.Deadline = float64(s1.Deadline) 970 s.MinDeadline = float64(s1.MinDeadline) 971 s.OperationDeadline = float64(s1.OperationDeadline) 972 return nil 973} 974 975// Billing: Billing related configuration of the service. 976// 977// The following example shows how to configure monitored resources and 978// metrics 979// for billing: 980// 981// monitored_resources: 982// - type: library.googleapis.com/branch 983// labels: 984// - key: /city 985// description: The city where the library branch is located 986// in. 987// - key: /name 988// description: The name of the branch. 989// metrics: 990// - name: library.googleapis.com/book/borrowed_count 991// metric_kind: DELTA 992// value_type: INT64 993// billing: 994// consumer_destinations: 995// - monitored_resource: library.googleapis.com/branch 996// metrics: 997// - library.googleapis.com/book/borrowed_count 998type Billing struct { 999 // ConsumerDestinations: Billing configurations for sending metrics to 1000 // the consumer project. 1001 // There can be multiple consumer destinations per service, each one 1002 // must have 1003 // a different monitored resource type. A metric can be used in at 1004 // most 1005 // one consumer destination. 1006 ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"` 1007 1008 // ForceSendFields is a list of field names (e.g. 1009 // "ConsumerDestinations") to unconditionally include in API requests. 1010 // By default, fields with empty values are omitted from API requests. 1011 // However, any non-pointer, non-interface field appearing in 1012 // ForceSendFields will be sent to the server regardless of whether the 1013 // field is empty or not. This may be used to include empty fields in 1014 // Patch requests. 1015 ForceSendFields []string `json:"-"` 1016 1017 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 1018 // include in API requests with the JSON null value. By default, fields 1019 // with empty values are omitted from API requests. However, any field 1020 // with an empty value appearing in NullFields will be sent to the 1021 // server as null. It is an error if a field in this list has a 1022 // non-empty value. This may be used to include null fields in Patch 1023 // requests. 1024 NullFields []string `json:"-"` 1025} 1026 1027func (s *Billing) MarshalJSON() ([]byte, error) { 1028 type NoMethod Billing 1029 raw := NoMethod(*s) 1030 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1031} 1032 1033// BillingDestination: Configuration of a specific billing destination 1034// (Currently only support 1035// bill against consumer project). 1036type BillingDestination struct { 1037 // Metrics: Names of the metrics to report to this billing 1038 // destination. 1039 // Each name must be defined in Service.metrics section. 1040 Metrics []string `json:"metrics,omitempty"` 1041 1042 // MonitoredResource: The monitored resource type. The type must be 1043 // defined in 1044 // Service.monitored_resources section. 1045 MonitoredResource string `json:"monitoredResource,omitempty"` 1046 1047 // ForceSendFields is a list of field names (e.g. "Metrics") to 1048 // unconditionally include in API requests. By default, fields with 1049 // empty values are omitted from API requests. However, any non-pointer, 1050 // non-interface field appearing in ForceSendFields will be sent to the 1051 // server regardless of whether the field is empty or not. This may be 1052 // used to include empty fields in Patch requests. 1053 ForceSendFields []string `json:"-"` 1054 1055 // NullFields is a list of field names (e.g. "Metrics") to include in 1056 // API requests with the JSON null value. By default, fields with empty 1057 // values are omitted from API requests. However, any field with an 1058 // empty value appearing in NullFields will be sent to the server as 1059 // null. It is an error if a field in this list has a non-empty value. 1060 // This may be used to include null fields in Patch requests. 1061 NullFields []string `json:"-"` 1062} 1063 1064func (s *BillingDestination) MarshalJSON() ([]byte, error) { 1065 type NoMethod BillingDestination 1066 raw := NoMethod(*s) 1067 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1068} 1069 1070// Binding: Associates `members` with a `role`. 1071type Binding struct { 1072 // Condition: The condition that is associated with this binding. 1073 // NOTE: An unsatisfied condition will not allow user access via 1074 // current 1075 // binding. Different bindings, including their conditions, are 1076 // examined 1077 // independently. 1078 Condition *Expr `json:"condition,omitempty"` 1079 1080 // Members: Specifies the identities requesting access for a Cloud 1081 // Platform resource. 1082 // `members` can have the following values: 1083 // 1084 // * `allUsers`: A special identifier that represents anyone who is 1085 // on the internet; with or without a Google account. 1086 // 1087 // * `allAuthenticatedUsers`: A special identifier that represents 1088 // anyone 1089 // who is authenticated with a Google account or a service 1090 // account. 1091 // 1092 // * `user:{emailid}`: An email address that represents a specific 1093 // Google 1094 // account. For example, `alice@example.com` . 1095 // 1096 // 1097 // * `serviceAccount:{emailid}`: An email address that represents a 1098 // service 1099 // account. For example, 1100 // `my-other-app@appspot.gserviceaccount.com`. 1101 // 1102 // * `group:{emailid}`: An email address that represents a Google 1103 // group. 1104 // For example, `admins@example.com`. 1105 // 1106 // * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus 1107 // unique 1108 // identifier) representing a user that has been recently deleted. 1109 // For 1110 // example, `alice@example.com?uid=123456789012345678901`. If the 1111 // user is 1112 // recovered, this value reverts to `user:{emailid}` and the 1113 // recovered user 1114 // retains the role in the binding. 1115 // 1116 // * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address 1117 // (plus 1118 // unique identifier) representing a service account that has been 1119 // recently 1120 // deleted. For example, 1121 // 1122 // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. 1123 // 1124 // If the service account is undeleted, this value reverts to 1125 // `serviceAccount:{emailid}` and the undeleted service account 1126 // retains the 1127 // role in the binding. 1128 // 1129 // * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus 1130 // unique 1131 // identifier) representing a Google group that has been recently 1132 // deleted. For example, 1133 // `admins@example.com?uid=123456789012345678901`. If 1134 // the group is recovered, this value reverts to `group:{emailid}` 1135 // and the 1136 // recovered group retains the role in the binding. 1137 // 1138 // 1139 // * `domain:{domain}`: The G Suite domain (primary) that represents all 1140 // the 1141 // users of that domain. For example, `google.com` or 1142 // `example.com`. 1143 // 1144 // 1145 Members []string `json:"members,omitempty"` 1146 1147 // Role: Role that is assigned to `members`. 1148 // For example, `roles/viewer`, `roles/editor`, or `roles/owner`. 1149 Role string `json:"role,omitempty"` 1150 1151 // ForceSendFields is a list of field names (e.g. "Condition") to 1152 // unconditionally include in API requests. By default, fields with 1153 // empty values are omitted from API requests. However, any non-pointer, 1154 // non-interface field appearing in ForceSendFields will be sent to the 1155 // server regardless of whether the field is empty or not. This may be 1156 // used to include empty fields in Patch requests. 1157 ForceSendFields []string `json:"-"` 1158 1159 // NullFields is a list of field names (e.g. "Condition") to include in 1160 // API requests with the JSON null value. By default, fields with empty 1161 // values are omitted from API requests. However, any field with an 1162 // empty value appearing in NullFields will be sent to the server as 1163 // null. It is an error if a field in this list has a non-empty value. 1164 // This may be used to include null fields in Patch requests. 1165 NullFields []string `json:"-"` 1166} 1167 1168func (s *Binding) MarshalJSON() ([]byte, error) { 1169 type NoMethod Binding 1170 raw := NoMethod(*s) 1171 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1172} 1173 1174// ChangeReport: Change report associated with a particular service 1175// configuration. 1176// 1177// It contains a list of ConfigChanges based on the comparison 1178// between 1179// two service configurations. 1180type ChangeReport struct { 1181 // ConfigChanges: List of changes between two service 1182 // configurations. 1183 // The changes will be alphabetically sorted based on the identifier 1184 // of each change. 1185 // A ConfigChange identifier is a dot separated path to the 1186 // configuration. 1187 // Example: 1188 // visibility.rules[selector='LibraryService.CreateBook'].restriction 1189 ConfigChanges []*ConfigChange `json:"configChanges,omitempty"` 1190 1191 // ForceSendFields is a list of field names (e.g. "ConfigChanges") to 1192 // unconditionally include in API requests. By default, fields with 1193 // empty values are omitted from API requests. However, any non-pointer, 1194 // non-interface field appearing in ForceSendFields will be sent to the 1195 // server regardless of whether the field is empty or not. This may be 1196 // used to include empty fields in Patch requests. 1197 ForceSendFields []string `json:"-"` 1198 1199 // NullFields is a list of field names (e.g. "ConfigChanges") to include 1200 // in API requests with the JSON null value. By default, fields with 1201 // empty values are omitted from API requests. However, any field with 1202 // an empty value appearing in NullFields will be sent to the server as 1203 // null. It is an error if a field in this list has a non-empty value. 1204 // This may be used to include null fields in Patch requests. 1205 NullFields []string `json:"-"` 1206} 1207 1208func (s *ChangeReport) MarshalJSON() ([]byte, error) { 1209 type NoMethod ChangeReport 1210 raw := NoMethod(*s) 1211 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1212} 1213 1214// ConfigChange: Output generated from semantically comparing two 1215// versions of a service 1216// configuration. 1217// 1218// Includes detailed information about a field that have changed 1219// with 1220// applicable advice about potential consequences for the change, such 1221// as 1222// backwards-incompatibility. 1223type ConfigChange struct { 1224 // Advices: Collection of advice provided for this change, useful for 1225 // determining the 1226 // possible impact of this change. 1227 Advices []*Advice `json:"advices,omitempty"` 1228 1229 // ChangeType: The type for this change, either ADDED, REMOVED, or 1230 // MODIFIED. 1231 // 1232 // Possible values: 1233 // "CHANGE_TYPE_UNSPECIFIED" - No value was provided. 1234 // "ADDED" - The changed object exists in the 'new' service 1235 // configuration, but not 1236 // in the 'old' service configuration. 1237 // "REMOVED" - The changed object exists in the 'old' service 1238 // configuration, but not 1239 // in the 'new' service configuration. 1240 // "MODIFIED" - The changed object exists in both service 1241 // configurations, but its value 1242 // is different. 1243 ChangeType string `json:"changeType,omitempty"` 1244 1245 // Element: Object hierarchy path to the change, with levels separated 1246 // by a '.' 1247 // character. For repeated fields, an applicable unique identifier field 1248 // is 1249 // used for the index (usually selector, name, or id). For maps, the 1250 // term 1251 // 'key' is used. If the field has no unique identifier, the numeric 1252 // index 1253 // is used. 1254 // Examples: 1255 // - 1256 // visibility.rules[selector=="google.LibraryService.ListBooks"].restrict 1257 // ion 1258 // - 1259 // quota.metric_rules[selector=="google"].metric_costs[key=="reads"].valu 1260 // e 1261 // - logging.producer_destinations[0] 1262 Element string `json:"element,omitempty"` 1263 1264 // NewValue: Value of the changed object in the new Service 1265 // configuration, 1266 // in JSON format. This field will not be populated if ChangeType == 1267 // REMOVED. 1268 NewValue string `json:"newValue,omitempty"` 1269 1270 // OldValue: Value of the changed object in the old Service 1271 // configuration, 1272 // in JSON format. This field will not be populated if ChangeType == 1273 // ADDED. 1274 OldValue string `json:"oldValue,omitempty"` 1275 1276 // ForceSendFields is a list of field names (e.g. "Advices") to 1277 // unconditionally include in API requests. By default, fields with 1278 // empty values are omitted from API requests. However, any non-pointer, 1279 // non-interface field appearing in ForceSendFields will be sent to the 1280 // server regardless of whether the field is empty or not. This may be 1281 // used to include empty fields in Patch requests. 1282 ForceSendFields []string `json:"-"` 1283 1284 // NullFields is a list of field names (e.g. "Advices") to include in 1285 // API requests with the JSON null value. By default, fields with empty 1286 // values are omitted from API requests. However, any field with an 1287 // empty value appearing in NullFields will be sent to the server as 1288 // null. It is an error if a field in this list has a non-empty value. 1289 // This may be used to include null fields in Patch requests. 1290 NullFields []string `json:"-"` 1291} 1292 1293func (s *ConfigChange) MarshalJSON() ([]byte, error) { 1294 type NoMethod ConfigChange 1295 raw := NoMethod(*s) 1296 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1297} 1298 1299// ConfigFile: Generic specification of a source configuration file 1300type ConfigFile struct { 1301 // FileContents: The bytes that constitute the file. 1302 FileContents string `json:"fileContents,omitempty"` 1303 1304 // FilePath: The file name of the configuration file (full or relative 1305 // path). 1306 FilePath string `json:"filePath,omitempty"` 1307 1308 // FileType: The type of configuration file this represents. 1309 // 1310 // Possible values: 1311 // "FILE_TYPE_UNSPECIFIED" - Unknown file type. 1312 // "SERVICE_CONFIG_YAML" - YAML-specification of service. 1313 // "OPEN_API_JSON" - OpenAPI specification, serialized in JSON. 1314 // "OPEN_API_YAML" - OpenAPI specification, serialized in YAML. 1315 // "FILE_DESCRIPTOR_SET_PROTO" - FileDescriptorSet, generated by 1316 // protoc. 1317 // 1318 // To generate, use protoc with imports and source info included. 1319 // For an example test.proto file, the following command would put the 1320 // value 1321 // in a new file named out.pb. 1322 // 1323 // $protoc --include_imports --include_source_info test.proto -o out.pb 1324 // "PROTO_FILE" - Uncompiled Proto file. Used for storage and display 1325 // purposes only, 1326 // currently server-side compilation is not supported. Should match 1327 // the 1328 // inputs to 'protoc' command used to generated 1329 // FILE_DESCRIPTOR_SET_PROTO. A 1330 // file of this type can only be included if at least one file of 1331 // type 1332 // FILE_DESCRIPTOR_SET_PROTO is included. 1333 FileType string `json:"fileType,omitempty"` 1334 1335 // ForceSendFields is a list of field names (e.g. "FileContents") to 1336 // unconditionally include in API requests. By default, fields with 1337 // empty values are omitted from API requests. However, any non-pointer, 1338 // non-interface field appearing in ForceSendFields will be sent to the 1339 // server regardless of whether the field is empty or not. This may be 1340 // used to include empty fields in Patch requests. 1341 ForceSendFields []string `json:"-"` 1342 1343 // NullFields is a list of field names (e.g. "FileContents") to include 1344 // in API requests with the JSON null value. By default, fields with 1345 // empty values are omitted from API requests. However, any field with 1346 // an empty value appearing in NullFields will be sent to the server as 1347 // null. It is an error if a field in this list has a non-empty value. 1348 // This may be used to include null fields in Patch requests. 1349 NullFields []string `json:"-"` 1350} 1351 1352func (s *ConfigFile) MarshalJSON() ([]byte, error) { 1353 type NoMethod ConfigFile 1354 raw := NoMethod(*s) 1355 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1356} 1357 1358// ConfigRef: Represents a service configuration with its name and id. 1359type ConfigRef struct { 1360 // Name: Resource name of a service config. It must have the 1361 // following 1362 // format: "services/{service name}/configs/{config id}". 1363 Name string `json:"name,omitempty"` 1364 1365 // ForceSendFields is a list of field names (e.g. "Name") to 1366 // unconditionally include in API requests. By default, fields with 1367 // empty values are omitted from API requests. However, any non-pointer, 1368 // non-interface field appearing in ForceSendFields will be sent to the 1369 // server regardless of whether the field is empty or not. This may be 1370 // used to include empty fields in Patch requests. 1371 ForceSendFields []string `json:"-"` 1372 1373 // NullFields is a list of field names (e.g. "Name") to include in API 1374 // requests with the JSON null value. By default, fields with empty 1375 // values are omitted from API requests. However, any field with an 1376 // empty value appearing in NullFields will be sent to the server as 1377 // null. It is an error if a field in this list has a non-empty value. 1378 // This may be used to include null fields in Patch requests. 1379 NullFields []string `json:"-"` 1380} 1381 1382func (s *ConfigRef) MarshalJSON() ([]byte, error) { 1383 type NoMethod ConfigRef 1384 raw := NoMethod(*s) 1385 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1386} 1387 1388// ConfigSource: Represents a source file which is used to generate the 1389// service configuration 1390// defined by `google.api.Service`. 1391type ConfigSource struct { 1392 // Files: Set of source configuration files that are used to generate a 1393 // service 1394 // configuration (`google.api.Service`). 1395 Files []*ConfigFile `json:"files,omitempty"` 1396 1397 // Id: A unique ID for a specific instance of this message, typically 1398 // assigned 1399 // by the client for tracking purpose. If empty, the server may choose 1400 // to 1401 // generate one instead. 1402 Id string `json:"id,omitempty"` 1403 1404 // ForceSendFields is a list of field names (e.g. "Files") to 1405 // unconditionally include in API requests. By default, fields with 1406 // empty values are omitted from API requests. However, any non-pointer, 1407 // non-interface field appearing in ForceSendFields will be sent to the 1408 // server regardless of whether the field is empty or not. This may be 1409 // used to include empty fields in Patch requests. 1410 ForceSendFields []string `json:"-"` 1411 1412 // NullFields is a list of field names (e.g. "Files") to include in API 1413 // requests with the JSON null value. By default, fields with empty 1414 // values are omitted from API requests. However, any field with an 1415 // empty value appearing in NullFields will be sent to the server as 1416 // null. It is an error if a field in this list has a non-empty value. 1417 // This may be used to include null fields in Patch requests. 1418 NullFields []string `json:"-"` 1419} 1420 1421func (s *ConfigSource) MarshalJSON() ([]byte, error) { 1422 type NoMethod ConfigSource 1423 raw := NoMethod(*s) 1424 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1425} 1426 1427// Context: `Context` defines which contexts an API 1428// requests. 1429// 1430// Example: 1431// 1432// context: 1433// rules: 1434// - selector: "*" 1435// requested: 1436// - google.rpc.context.ProjectContext 1437// - google.rpc.context.OriginContext 1438// 1439// The above specifies that all methods in the API 1440// request 1441// `google.rpc.context.ProjectContext` 1442// and 1443// `google.rpc.context.OriginContext`. 1444// 1445// Available context types are defined in 1446// package 1447// `google.rpc.context`. 1448// 1449// This also provides mechanism to whitelist any protobuf message 1450// extension that 1451// can be sent in grpc metadata using 1452// “x-goog-ext-<extension_id>-bin” 1453// and 1454// “x-goog-ext-<extension_id>-jspb” format. For example, list any 1455// service 1456// specific protobuf types that can appear in grpc metadata as follows 1457// in your 1458// yaml file: 1459// 1460// Example: 1461// 1462// context: 1463// rules: 1464// - selector: 1465// "google.example.library.v1.LibraryService.CreateBook" 1466// allowed_request_extensions: 1467// - google.foo.v1.NewExtension 1468// allowed_response_extensions: 1469// - google.foo.v1.NewExtension 1470// 1471// You can also specify extension ID instead of fully qualified 1472// extension name 1473// here. 1474type Context struct { 1475 // Rules: A list of RPC context rules that apply to individual API 1476 // methods. 1477 // 1478 // **NOTE:** All service configuration rules follow "last one wins" 1479 // order. 1480 Rules []*ContextRule `json:"rules,omitempty"` 1481 1482 // ForceSendFields is a list of field names (e.g. "Rules") to 1483 // unconditionally include in API requests. By default, fields with 1484 // empty values are omitted from API requests. However, any non-pointer, 1485 // non-interface field appearing in ForceSendFields will be sent to the 1486 // server regardless of whether the field is empty or not. This may be 1487 // used to include empty fields in Patch requests. 1488 ForceSendFields []string `json:"-"` 1489 1490 // NullFields is a list of field names (e.g. "Rules") to include in API 1491 // requests with the JSON null value. By default, fields with empty 1492 // values are omitted from API requests. However, any field with an 1493 // empty value appearing in NullFields will be sent to the server as 1494 // null. It is an error if a field in this list has a non-empty value. 1495 // This may be used to include null fields in Patch requests. 1496 NullFields []string `json:"-"` 1497} 1498 1499func (s *Context) MarshalJSON() ([]byte, error) { 1500 type NoMethod Context 1501 raw := NoMethod(*s) 1502 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1503} 1504 1505// ContextRule: A context rule provides information about the context 1506// for an individual API 1507// element. 1508type ContextRule struct { 1509 // AllowedRequestExtensions: A list of full type names or extension IDs 1510 // of extensions allowed in grpc 1511 // side channel from client to backend. 1512 AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"` 1513 1514 // AllowedResponseExtensions: A list of full type names or extension IDs 1515 // of extensions allowed in grpc 1516 // side channel from backend to client. 1517 AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"` 1518 1519 // Provided: A list of full type names of provided contexts. 1520 Provided []string `json:"provided,omitempty"` 1521 1522 // Requested: A list of full type names of requested contexts. 1523 Requested []string `json:"requested,omitempty"` 1524 1525 // Selector: Selects the methods to which this rule applies. 1526 // 1527 // Refer to selector for syntax details. 1528 Selector string `json:"selector,omitempty"` 1529 1530 // ForceSendFields is a list of field names (e.g. 1531 // "AllowedRequestExtensions") to unconditionally include in API 1532 // requests. By default, fields with empty values are omitted from API 1533 // requests. However, any non-pointer, non-interface field appearing in 1534 // ForceSendFields will be sent to the server regardless of whether the 1535 // field is empty or not. This may be used to include empty fields in 1536 // Patch requests. 1537 ForceSendFields []string `json:"-"` 1538 1539 // NullFields is a list of field names (e.g. "AllowedRequestExtensions") 1540 // to include in API requests with the JSON null value. By default, 1541 // fields with empty values are omitted from API requests. However, any 1542 // field with an empty value appearing in NullFields will be sent to the 1543 // server as null. It is an error if a field in this list has a 1544 // non-empty value. This may be used to include null fields in Patch 1545 // requests. 1546 NullFields []string `json:"-"` 1547} 1548 1549func (s *ContextRule) MarshalJSON() ([]byte, error) { 1550 type NoMethod ContextRule 1551 raw := NoMethod(*s) 1552 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1553} 1554 1555// Control: Selects and configures the service controller used by the 1556// service. The 1557// service controller handles features like abuse, quota, billing, 1558// logging, 1559// monitoring, etc. 1560type Control struct { 1561 // Environment: The service control environment to use. If empty, no 1562 // control plane 1563 // feature (like quota and billing) will be enabled. 1564 Environment string `json:"environment,omitempty"` 1565 1566 // ForceSendFields is a list of field names (e.g. "Environment") to 1567 // unconditionally include in API requests. By default, fields with 1568 // empty values are omitted from API requests. However, any non-pointer, 1569 // non-interface field appearing in ForceSendFields will be sent to the 1570 // server regardless of whether the field is empty or not. This may be 1571 // used to include empty fields in Patch requests. 1572 ForceSendFields []string `json:"-"` 1573 1574 // NullFields is a list of field names (e.g. "Environment") to include 1575 // in API requests with the JSON null value. By default, fields with 1576 // empty values are omitted from API requests. However, any field with 1577 // an empty value appearing in NullFields will be sent to the server as 1578 // null. It is an error if a field in this list has a non-empty value. 1579 // This may be used to include null fields in Patch requests. 1580 NullFields []string `json:"-"` 1581} 1582 1583func (s *Control) MarshalJSON() ([]byte, error) { 1584 type NoMethod Control 1585 raw := NoMethod(*s) 1586 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1587} 1588 1589// CustomError: Customize service error responses. For example, list 1590// any service 1591// specific protobuf types that can appear in error detail lists 1592// of 1593// error responses. 1594// 1595// Example: 1596// 1597// custom_error: 1598// types: 1599// - google.foo.v1.CustomError 1600// - google.foo.v1.AnotherError 1601type CustomError struct { 1602 // Rules: The list of custom error rules that apply to individual API 1603 // messages. 1604 // 1605 // **NOTE:** All service configuration rules follow "last one wins" 1606 // order. 1607 Rules []*CustomErrorRule `json:"rules,omitempty"` 1608 1609 // Types: The list of custom error detail types, e.g. 1610 // 'google.foo.v1.CustomError'. 1611 Types []string `json:"types,omitempty"` 1612 1613 // ForceSendFields is a list of field names (e.g. "Rules") to 1614 // unconditionally include in API requests. By default, fields with 1615 // empty values are omitted from API requests. However, any non-pointer, 1616 // non-interface field appearing in ForceSendFields will be sent to the 1617 // server regardless of whether the field is empty or not. This may be 1618 // used to include empty fields in Patch requests. 1619 ForceSendFields []string `json:"-"` 1620 1621 // NullFields is a list of field names (e.g. "Rules") to include in API 1622 // requests with the JSON null value. By default, fields with empty 1623 // values are omitted from API requests. However, any field with an 1624 // empty value appearing in NullFields will be sent to the server as 1625 // null. It is an error if a field in this list has a non-empty value. 1626 // This may be used to include null fields in Patch requests. 1627 NullFields []string `json:"-"` 1628} 1629 1630func (s *CustomError) MarshalJSON() ([]byte, error) { 1631 type NoMethod CustomError 1632 raw := NoMethod(*s) 1633 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1634} 1635 1636// CustomErrorRule: A custom error rule. 1637type CustomErrorRule struct { 1638 // IsErrorType: Mark this message as possible payload in error response. 1639 // Otherwise, 1640 // objects of this type will be filtered when they appear in error 1641 // payload. 1642 IsErrorType bool `json:"isErrorType,omitempty"` 1643 1644 // Selector: Selects messages to which this rule applies. 1645 // 1646 // Refer to selector for syntax details. 1647 Selector string `json:"selector,omitempty"` 1648 1649 // ForceSendFields is a list of field names (e.g. "IsErrorType") to 1650 // unconditionally include in API requests. By default, fields with 1651 // empty values are omitted from API requests. However, any non-pointer, 1652 // non-interface field appearing in ForceSendFields will be sent to the 1653 // server regardless of whether the field is empty or not. This may be 1654 // used to include empty fields in Patch requests. 1655 ForceSendFields []string `json:"-"` 1656 1657 // NullFields is a list of field names (e.g. "IsErrorType") to include 1658 // in API requests with the JSON null value. By default, fields with 1659 // empty values are omitted from API requests. However, any field with 1660 // an empty value appearing in NullFields will be sent to the server as 1661 // null. It is an error if a field in this list has a non-empty value. 1662 // This may be used to include null fields in Patch requests. 1663 NullFields []string `json:"-"` 1664} 1665 1666func (s *CustomErrorRule) MarshalJSON() ([]byte, error) { 1667 type NoMethod CustomErrorRule 1668 raw := NoMethod(*s) 1669 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1670} 1671 1672// CustomHttpPattern: A custom pattern is used for defining custom HTTP 1673// verb. 1674type CustomHttpPattern struct { 1675 // Kind: The name of this custom HTTP verb. 1676 Kind string `json:"kind,omitempty"` 1677 1678 // Path: The path matched by this custom verb. 1679 Path string `json:"path,omitempty"` 1680 1681 // ForceSendFields is a list of field names (e.g. "Kind") to 1682 // unconditionally include in API requests. By default, fields with 1683 // empty values are omitted from API requests. However, any non-pointer, 1684 // non-interface field appearing in ForceSendFields will be sent to the 1685 // server regardless of whether the field is empty or not. This may be 1686 // used to include empty fields in Patch requests. 1687 ForceSendFields []string `json:"-"` 1688 1689 // NullFields is a list of field names (e.g. "Kind") to include in API 1690 // requests with the JSON null value. By default, fields with empty 1691 // values are omitted from API requests. However, any field with an 1692 // empty value appearing in NullFields will be sent to the server as 1693 // null. It is an error if a field in this list has a non-empty value. 1694 // This may be used to include null fields in Patch requests. 1695 NullFields []string `json:"-"` 1696} 1697 1698func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) { 1699 type NoMethod CustomHttpPattern 1700 raw := NoMethod(*s) 1701 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1702} 1703 1704// DeleteServiceStrategy: Strategy used to delete a service. This 1705// strategy is a placeholder only 1706// used by the system generated rollout to delete a service. 1707type DeleteServiceStrategy struct { 1708} 1709 1710// Diagnostic: Represents a diagnostic message (error or warning) 1711type Diagnostic struct { 1712 // Kind: The kind of diagnostic information provided. 1713 // 1714 // Possible values: 1715 // "WARNING" - Warnings and errors 1716 // "ERROR" - Only errors 1717 Kind string `json:"kind,omitempty"` 1718 1719 // Location: File name and line number of the error or warning. 1720 Location string `json:"location,omitempty"` 1721 1722 // Message: Message describing the error or warning. 1723 Message string `json:"message,omitempty"` 1724 1725 // ForceSendFields is a list of field names (e.g. "Kind") to 1726 // unconditionally include in API requests. By default, fields with 1727 // empty values are omitted from API requests. However, any non-pointer, 1728 // non-interface field appearing in ForceSendFields will be sent to the 1729 // server regardless of whether the field is empty or not. This may be 1730 // used to include empty fields in Patch requests. 1731 ForceSendFields []string `json:"-"` 1732 1733 // NullFields is a list of field names (e.g. "Kind") to include in API 1734 // requests with the JSON null value. By default, fields with empty 1735 // values are omitted from API requests. However, any field with an 1736 // empty value appearing in NullFields will be sent to the server as 1737 // null. It is an error if a field in this list has a non-empty value. 1738 // This may be used to include null fields in Patch requests. 1739 NullFields []string `json:"-"` 1740} 1741 1742func (s *Diagnostic) MarshalJSON() ([]byte, error) { 1743 type NoMethod Diagnostic 1744 raw := NoMethod(*s) 1745 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1746} 1747 1748// DisableServiceRequest: Request message for DisableService method. 1749type DisableServiceRequest struct { 1750 // ConsumerId: Required. The identity of consumer resource which service 1751 // disablement will be 1752 // applied to. 1753 // 1754 // The Google Service Management implementation accepts the 1755 // following 1756 // forms: 1757 // - "project:<project_id>" 1758 // 1759 // Note: this is made compatible 1760 // with 1761 // google.api.servicecontrol.v1.Operation.consumer_id. 1762 ConsumerId string `json:"consumerId,omitempty"` 1763 1764 // ForceSendFields is a list of field names (e.g. "ConsumerId") to 1765 // unconditionally include in API requests. By default, fields with 1766 // empty values are omitted from API requests. However, any non-pointer, 1767 // non-interface field appearing in ForceSendFields will be sent to the 1768 // server regardless of whether the field is empty or not. This may be 1769 // used to include empty fields in Patch requests. 1770 ForceSendFields []string `json:"-"` 1771 1772 // NullFields is a list of field names (e.g. "ConsumerId") to include in 1773 // API requests with the JSON null value. By default, fields with empty 1774 // values are omitted from API requests. However, any field with an 1775 // empty value appearing in NullFields will be sent to the server as 1776 // null. It is an error if a field in this list has a non-empty value. 1777 // This may be used to include null fields in Patch requests. 1778 NullFields []string `json:"-"` 1779} 1780 1781func (s *DisableServiceRequest) MarshalJSON() ([]byte, error) { 1782 type NoMethod DisableServiceRequest 1783 raw := NoMethod(*s) 1784 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1785} 1786 1787// DisableServiceResponse: Operation payload for DisableService method. 1788type DisableServiceResponse struct { 1789} 1790 1791// Documentation: `Documentation` provides the information for 1792// describing a service. 1793// 1794// Example: 1795// <pre><code>documentation: 1796// summary: > 1797// The Google Calendar API gives access 1798// to most calendar features. 1799// pages: 1800// - name: Overview 1801// content: (== include google/foo/overview.md ==) 1802// - name: Tutorial 1803// content: (== include google/foo/tutorial.md ==) 1804// subpages; 1805// - name: Java 1806// content: (== include google/foo/tutorial_java.md ==) 1807// rules: 1808// - selector: google.calendar.Calendar.Get 1809// description: > 1810// ... 1811// - selector: google.calendar.Calendar.Put 1812// description: > 1813// ... 1814// </code></pre> 1815// Documentation is provided in markdown syntax. In addition to 1816// standard markdown features, definition lists, tables and fenced 1817// code blocks are supported. Section headers can be provided and 1818// are 1819// interpreted relative to the section nesting of the context where 1820// a documentation fragment is embedded. 1821// 1822// Documentation from the IDL is merged with documentation defined 1823// via the config at normalization time, where documentation provided 1824// by config rules overrides IDL provided. 1825// 1826// A number of constructs specific to the API platform are supported 1827// in documentation text. 1828// 1829// In order to reference a proto element, the following 1830// notation can be 1831// used: 1832// <pre><code>[fully.qualified.proto.name][]</code></pre> 1833// T 1834// o override the display text used for the link, this can be 1835// used: 1836// <pre><code>[display 1837// text][fully.qualified.proto.name]</code></pre> 1838// Text can be excluded from doc using the following 1839// notation: 1840// <pre><code>(-- internal comment --)</code></pre> 1841// 1842// A few directives are available in documentation. Note that 1843// directives must appear on a single line to be properly 1844// identified. The `include` directive includes a markdown file from 1845// an external source: 1846// <pre><code>(== include path/to/file ==)</code></pre> 1847// The `resource_for` directive marks a message to be the resource of 1848// a collection in REST view. If it is not specified, tools attempt 1849// to infer the resource from the operations in a 1850// collection: 1851// <pre><code>(== resource_for v1.shelves.books 1852// ==)</code></pre> 1853// The directive `suppress_warning` does not directly affect 1854// documentation 1855// and is documented together with service config validation. 1856type Documentation struct { 1857 // DocumentationRootUrl: The URL to the root of documentation. 1858 DocumentationRootUrl string `json:"documentationRootUrl,omitempty"` 1859 1860 // Overview: Declares a single overview page. For 1861 // example: 1862 // <pre><code>documentation: 1863 // summary: ... 1864 // overview: (== include overview.md ==) 1865 // </code></pre> 1866 // This is a shortcut for the following declaration (using pages 1867 // style): 1868 // <pre><code>documentation: 1869 // summary: ... 1870 // pages: 1871 // - name: Overview 1872 // content: (== include overview.md ==) 1873 // </code></pre> 1874 // Note: you cannot specify both `overview` field and `pages` field. 1875 Overview string `json:"overview,omitempty"` 1876 1877 // Pages: The top level pages for the documentation set. 1878 Pages []*Page `json:"pages,omitempty"` 1879 1880 // Rules: A list of documentation rules that apply to individual API 1881 // elements. 1882 // 1883 // **NOTE:** All service configuration rules follow "last one wins" 1884 // order. 1885 Rules []*DocumentationRule `json:"rules,omitempty"` 1886 1887 // ServiceRootUrl: Specifies the service root url if the default one 1888 // (the service name 1889 // from the yaml file) is not suitable. This can be seen in any 1890 // fully 1891 // specified service urls as well as sections that show a base that 1892 // other 1893 // urls are relative to. 1894 ServiceRootUrl string `json:"serviceRootUrl,omitempty"` 1895 1896 // Summary: A short summary of what the service does. Can only be 1897 // provided by 1898 // plain text. 1899 Summary string `json:"summary,omitempty"` 1900 1901 // ForceSendFields is a list of field names (e.g. 1902 // "DocumentationRootUrl") to unconditionally include in API requests. 1903 // By default, fields with empty values are omitted from API requests. 1904 // However, any non-pointer, non-interface field appearing in 1905 // ForceSendFields will be sent to the server regardless of whether the 1906 // field is empty or not. This may be used to include empty fields in 1907 // Patch requests. 1908 ForceSendFields []string `json:"-"` 1909 1910 // NullFields is a list of field names (e.g. "DocumentationRootUrl") to 1911 // include in API requests with the JSON null value. By default, fields 1912 // with empty values are omitted from API requests. However, any field 1913 // with an empty value appearing in NullFields will be sent to the 1914 // server as null. It is an error if a field in this list has a 1915 // non-empty value. This may be used to include null fields in Patch 1916 // requests. 1917 NullFields []string `json:"-"` 1918} 1919 1920func (s *Documentation) MarshalJSON() ([]byte, error) { 1921 type NoMethod Documentation 1922 raw := NoMethod(*s) 1923 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1924} 1925 1926// DocumentationRule: A documentation rule provides information about 1927// individual API elements. 1928type DocumentationRule struct { 1929 // DeprecationDescription: Deprecation description of the selected 1930 // element(s). It can be provided if 1931 // an element is marked as `deprecated`. 1932 DeprecationDescription string `json:"deprecationDescription,omitempty"` 1933 1934 // Description: Description of the selected API(s). 1935 Description string `json:"description,omitempty"` 1936 1937 // Selector: The selector is a comma-separated list of patterns. Each 1938 // pattern is a 1939 // qualified name of the element which may end in "*", indicating a 1940 // wildcard. 1941 // Wildcards are only allowed at the end and for a whole component of 1942 // the 1943 // qualified name, i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". 1944 // A 1945 // wildcard will match one or more components. To specify a default for 1946 // all 1947 // applicable elements, the whole pattern "*" is used. 1948 Selector string `json:"selector,omitempty"` 1949 1950 // ForceSendFields is a list of field names (e.g. 1951 // "DeprecationDescription") to unconditionally include in API requests. 1952 // By default, fields with empty values are omitted from API requests. 1953 // However, any non-pointer, non-interface field appearing in 1954 // ForceSendFields will be sent to the server regardless of whether the 1955 // field is empty or not. This may be used to include empty fields in 1956 // Patch requests. 1957 ForceSendFields []string `json:"-"` 1958 1959 // NullFields is a list of field names (e.g. "DeprecationDescription") 1960 // to include in API requests with the JSON null value. By default, 1961 // fields with empty values are omitted from API requests. However, any 1962 // field with an empty value appearing in NullFields will be sent to the 1963 // server as null. It is an error if a field in this list has a 1964 // non-empty value. This may be used to include null fields in Patch 1965 // requests. 1966 NullFields []string `json:"-"` 1967} 1968 1969func (s *DocumentationRule) MarshalJSON() ([]byte, error) { 1970 type NoMethod DocumentationRule 1971 raw := NoMethod(*s) 1972 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 1973} 1974 1975// EnableServiceRequest: Request message for EnableService method. 1976type EnableServiceRequest struct { 1977 // ConsumerId: Required. The identity of consumer resource which service 1978 // enablement will be 1979 // applied to. 1980 // 1981 // The Google Service Management implementation accepts the 1982 // following 1983 // forms: 1984 // - "project:<project_id>" 1985 // 1986 // Note: this is made compatible 1987 // with 1988 // google.api.servicecontrol.v1.Operation.consumer_id. 1989 ConsumerId string `json:"consumerId,omitempty"` 1990 1991 // ForceSendFields is a list of field names (e.g. "ConsumerId") to 1992 // unconditionally include in API requests. By default, fields with 1993 // empty values are omitted from API requests. However, any non-pointer, 1994 // non-interface field appearing in ForceSendFields will be sent to the 1995 // server regardless of whether the field is empty or not. This may be 1996 // used to include empty fields in Patch requests. 1997 ForceSendFields []string `json:"-"` 1998 1999 // NullFields is a list of field names (e.g. "ConsumerId") to include in 2000 // API requests with the JSON null value. By default, fields with empty 2001 // values are omitted from API requests. However, any field with an 2002 // empty value appearing in NullFields will be sent to the server as 2003 // null. It is an error if a field in this list has a non-empty value. 2004 // This may be used to include null fields in Patch requests. 2005 NullFields []string `json:"-"` 2006} 2007 2008func (s *EnableServiceRequest) MarshalJSON() ([]byte, error) { 2009 type NoMethod EnableServiceRequest 2010 raw := NoMethod(*s) 2011 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2012} 2013 2014// EnableServiceResponse: Operation payload for EnableService method. 2015type EnableServiceResponse struct { 2016} 2017 2018// Endpoint: `Endpoint` describes a network endpoint that serves a set 2019// of APIs. 2020// A service may expose any number of endpoints, and all endpoints share 2021// the 2022// same service configuration, such as quota configuration and 2023// monitoring 2024// configuration. 2025// 2026// Example service configuration: 2027// 2028// name: library-example.googleapis.com 2029// endpoints: 2030// # Below entry makes 'google.example.library.v1.Library' 2031// # API be served from endpoint address 2032// library-example.googleapis.com. 2033// # It also allows HTTP OPTIONS calls to be passed to the 2034// backend, for 2035// # it to decide whether the subsequent cross-origin request is 2036// # allowed to proceed. 2037// - name: library-example.googleapis.com 2038// allow_cors: true 2039type Endpoint struct { 2040 // Aliases: DEPRECATED: This field is no longer supported. Instead of 2041 // using aliases, 2042 // please specify multiple google.api.Endpoint for each of the 2043 // intended 2044 // aliases. 2045 // 2046 // Additional names that this endpoint will be hosted on. 2047 Aliases []string `json:"aliases,omitempty"` 2048 2049 // AllowCors: 2050 // Allowing 2051 // [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sh 2052 // aring), aka 2053 // cross-domain traffic, would allow the backends served from this 2054 // endpoint to 2055 // receive and respond to HTTP OPTIONS requests. The response will be 2056 // used by 2057 // the browser to determine whether the subsequent cross-origin request 2058 // is 2059 // allowed to proceed. 2060 AllowCors bool `json:"allowCors,omitempty"` 2061 2062 // Features: The list of features enabled on this endpoint. 2063 Features []string `json:"features,omitempty"` 2064 2065 // Name: The canonical name of this endpoint. 2066 Name string `json:"name,omitempty"` 2067 2068 // Target: The specification of an Internet routable address of API 2069 // frontend that will 2070 // handle requests to this 2071 // [API 2072 // Endpoint](https://cloud.google.com/apis/design/glossary). It should 2073 // be 2074 // either a valid IPv4 address or a fully-qualified domain name. For 2075 // example, 2076 // "8.8.8.8" or "myservice.appspot.com". 2077 Target string `json:"target,omitempty"` 2078 2079 // ForceSendFields is a list of field names (e.g. "Aliases") to 2080 // unconditionally include in API requests. By default, fields with 2081 // empty values are omitted from API requests. However, any non-pointer, 2082 // non-interface field appearing in ForceSendFields will be sent to the 2083 // server regardless of whether the field is empty or not. This may be 2084 // used to include empty fields in Patch requests. 2085 ForceSendFields []string `json:"-"` 2086 2087 // NullFields is a list of field names (e.g. "Aliases") to include in 2088 // API requests with the JSON null value. By default, fields with empty 2089 // values are omitted from API requests. However, any field with an 2090 // empty value appearing in NullFields will be sent to the server as 2091 // null. It is an error if a field in this list has a non-empty value. 2092 // This may be used to include null fields in Patch requests. 2093 NullFields []string `json:"-"` 2094} 2095 2096func (s *Endpoint) MarshalJSON() ([]byte, error) { 2097 type NoMethod Endpoint 2098 raw := NoMethod(*s) 2099 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2100} 2101 2102// Enum: Enum type definition. 2103type Enum struct { 2104 // Enumvalue: Enum value definitions. 2105 Enumvalue []*EnumValue `json:"enumvalue,omitempty"` 2106 2107 // Name: Enum type name. 2108 Name string `json:"name,omitempty"` 2109 2110 // Options: Protocol buffer options. 2111 Options []*Option `json:"options,omitempty"` 2112 2113 // SourceContext: The source context. 2114 SourceContext *SourceContext `json:"sourceContext,omitempty"` 2115 2116 // Syntax: The source syntax. 2117 // 2118 // Possible values: 2119 // "SYNTAX_PROTO2" - Syntax `proto2`. 2120 // "SYNTAX_PROTO3" - Syntax `proto3`. 2121 Syntax string `json:"syntax,omitempty"` 2122 2123 // ForceSendFields is a list of field names (e.g. "Enumvalue") to 2124 // unconditionally include in API requests. By default, fields with 2125 // empty values are omitted from API requests. However, any non-pointer, 2126 // non-interface field appearing in ForceSendFields will be sent to the 2127 // server regardless of whether the field is empty or not. This may be 2128 // used to include empty fields in Patch requests. 2129 ForceSendFields []string `json:"-"` 2130 2131 // NullFields is a list of field names (e.g. "Enumvalue") to include in 2132 // API requests with the JSON null value. By default, fields with empty 2133 // values are omitted from API requests. However, any field with an 2134 // empty value appearing in NullFields will be sent to the server as 2135 // null. It is an error if a field in this list has a non-empty value. 2136 // This may be used to include null fields in Patch requests. 2137 NullFields []string `json:"-"` 2138} 2139 2140func (s *Enum) MarshalJSON() ([]byte, error) { 2141 type NoMethod Enum 2142 raw := NoMethod(*s) 2143 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2144} 2145 2146// EnumValue: Enum value definition. 2147type EnumValue struct { 2148 // Name: Enum value name. 2149 Name string `json:"name,omitempty"` 2150 2151 // Number: Enum value number. 2152 Number int64 `json:"number,omitempty"` 2153 2154 // Options: Protocol buffer options. 2155 Options []*Option `json:"options,omitempty"` 2156 2157 // ForceSendFields is a list of field names (e.g. "Name") to 2158 // unconditionally include in API requests. By default, fields with 2159 // empty values are omitted from API requests. However, any non-pointer, 2160 // non-interface field appearing in ForceSendFields will be sent to the 2161 // server regardless of whether the field is empty or not. This may be 2162 // used to include empty fields in Patch requests. 2163 ForceSendFields []string `json:"-"` 2164 2165 // NullFields is a list of field names (e.g. "Name") to include in API 2166 // requests with the JSON null value. By default, fields with empty 2167 // values are omitted from API requests. However, any field with an 2168 // empty value appearing in NullFields will be sent to the server as 2169 // null. It is an error if a field in this list has a non-empty value. 2170 // This may be used to include null fields in Patch requests. 2171 NullFields []string `json:"-"` 2172} 2173 2174func (s *EnumValue) MarshalJSON() ([]byte, error) { 2175 type NoMethod EnumValue 2176 raw := NoMethod(*s) 2177 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2178} 2179 2180// Expr: Represents a textual expression in the Common Expression 2181// Language (CEL) 2182// syntax. CEL is a C-like expression language. The syntax and semantics 2183// of CEL 2184// are documented at https://github.com/google/cel-spec. 2185// 2186// Example (Comparison): 2187// 2188// title: "Summary size limit" 2189// description: "Determines if a summary is less than 100 chars" 2190// expression: "document.summary.size() < 100" 2191// 2192// Example (Equality): 2193// 2194// title: "Requestor is owner" 2195// description: "Determines if requestor is the document owner" 2196// expression: "document.owner == 2197// request.auth.claims.email" 2198// 2199// Example (Logic): 2200// 2201// title: "Public documents" 2202// description: "Determine whether the document should be publicly 2203// visible" 2204// expression: "document.type != 'private' && document.type != 2205// 'internal'" 2206// 2207// Example (Data Manipulation): 2208// 2209// title: "Notification string" 2210// description: "Create a notification string with a timestamp." 2211// expression: "'New message received at ' + 2212// string(document.create_time)" 2213// 2214// The exact variables and functions that may be referenced within an 2215// expression 2216// are determined by the service that evaluates it. See the 2217// service 2218// documentation for additional information. 2219type Expr struct { 2220 // Description: Optional. Description of the expression. This is a 2221 // longer text which 2222 // describes the expression, e.g. when hovered over it in a UI. 2223 Description string `json:"description,omitempty"` 2224 2225 // Expression: Textual representation of an expression in Common 2226 // Expression Language 2227 // syntax. 2228 Expression string `json:"expression,omitempty"` 2229 2230 // Location: Optional. String indicating the location of the expression 2231 // for error 2232 // reporting, e.g. a file name and a position in the file. 2233 Location string `json:"location,omitempty"` 2234 2235 // Title: Optional. Title for the expression, i.e. a short string 2236 // describing 2237 // its purpose. This can be used e.g. in UIs which allow to enter 2238 // the 2239 // expression. 2240 Title string `json:"title,omitempty"` 2241 2242 // ForceSendFields is a list of field names (e.g. "Description") to 2243 // unconditionally include in API requests. By default, fields with 2244 // empty values are omitted from API requests. However, any non-pointer, 2245 // non-interface field appearing in ForceSendFields will be sent to the 2246 // server regardless of whether the field is empty or not. This may be 2247 // used to include empty fields in Patch requests. 2248 ForceSendFields []string `json:"-"` 2249 2250 // NullFields is a list of field names (e.g. "Description") to include 2251 // in API requests with the JSON null value. By default, fields with 2252 // empty values are omitted from API requests. However, any field with 2253 // an empty value appearing in NullFields will be sent to the server as 2254 // null. It is an error if a field in this list has a non-empty value. 2255 // This may be used to include null fields in Patch requests. 2256 NullFields []string `json:"-"` 2257} 2258 2259func (s *Expr) MarshalJSON() ([]byte, error) { 2260 type NoMethod Expr 2261 raw := NoMethod(*s) 2262 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2263} 2264 2265// Field: A single field of a message type. 2266type Field struct { 2267 // Cardinality: The field cardinality. 2268 // 2269 // Possible values: 2270 // "CARDINALITY_UNKNOWN" - For fields with unknown cardinality. 2271 // "CARDINALITY_OPTIONAL" - For optional fields. 2272 // "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only. 2273 // "CARDINALITY_REPEATED" - For repeated fields. 2274 Cardinality string `json:"cardinality,omitempty"` 2275 2276 // DefaultValue: The string value of the default value of this field. 2277 // Proto2 syntax only. 2278 DefaultValue string `json:"defaultValue,omitempty"` 2279 2280 // JsonName: The field JSON name. 2281 JsonName string `json:"jsonName,omitempty"` 2282 2283 // Kind: The field type. 2284 // 2285 // Possible values: 2286 // "TYPE_UNKNOWN" - Field type unknown. 2287 // "TYPE_DOUBLE" - Field type double. 2288 // "TYPE_FLOAT" - Field type float. 2289 // "TYPE_INT64" - Field type int64. 2290 // "TYPE_UINT64" - Field type uint64. 2291 // "TYPE_INT32" - Field type int32. 2292 // "TYPE_FIXED64" - Field type fixed64. 2293 // "TYPE_FIXED32" - Field type fixed32. 2294 // "TYPE_BOOL" - Field type bool. 2295 // "TYPE_STRING" - Field type string. 2296 // "TYPE_GROUP" - Field type group. Proto2 syntax only, and 2297 // deprecated. 2298 // "TYPE_MESSAGE" - Field type message. 2299 // "TYPE_BYTES" - Field type bytes. 2300 // "TYPE_UINT32" - Field type uint32. 2301 // "TYPE_ENUM" - Field type enum. 2302 // "TYPE_SFIXED32" - Field type sfixed32. 2303 // "TYPE_SFIXED64" - Field type sfixed64. 2304 // "TYPE_SINT32" - Field type sint32. 2305 // "TYPE_SINT64" - Field type sint64. 2306 Kind string `json:"kind,omitempty"` 2307 2308 // Name: The field name. 2309 Name string `json:"name,omitempty"` 2310 2311 // Number: The field number. 2312 Number int64 `json:"number,omitempty"` 2313 2314 // OneofIndex: The index of the field type in `Type.oneofs`, for message 2315 // or enumeration 2316 // types. The first type has index 1; zero means the type is not in the 2317 // list. 2318 OneofIndex int64 `json:"oneofIndex,omitempty"` 2319 2320 // Options: The protocol buffer options. 2321 Options []*Option `json:"options,omitempty"` 2322 2323 // Packed: Whether to use alternative packed wire representation. 2324 Packed bool `json:"packed,omitempty"` 2325 2326 // TypeUrl: The field type URL, without the scheme, for message or 2327 // enumeration 2328 // types. Example: "type.googleapis.com/google.protobuf.Timestamp". 2329 TypeUrl string `json:"typeUrl,omitempty"` 2330 2331 // ForceSendFields is a list of field names (e.g. "Cardinality") to 2332 // unconditionally include in API requests. By default, fields with 2333 // empty values are omitted from API requests. However, any non-pointer, 2334 // non-interface field appearing in ForceSendFields will be sent to the 2335 // server regardless of whether the field is empty or not. This may be 2336 // used to include empty fields in Patch requests. 2337 ForceSendFields []string `json:"-"` 2338 2339 // NullFields is a list of field names (e.g. "Cardinality") to include 2340 // in API requests with the JSON null value. By default, fields with 2341 // empty values are omitted from API requests. However, any field with 2342 // an empty value appearing in NullFields will be sent to the server as 2343 // null. It is an error if a field in this list has a non-empty value. 2344 // This may be used to include null fields in Patch requests. 2345 NullFields []string `json:"-"` 2346} 2347 2348func (s *Field) MarshalJSON() ([]byte, error) { 2349 type NoMethod Field 2350 raw := NoMethod(*s) 2351 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2352} 2353 2354// FlowErrorDetails: Encapsulation of flow-specific error details for 2355// debugging. 2356// Used as a details field on an error Status, not intended for external 2357// use. 2358type FlowErrorDetails struct { 2359 // ExceptionType: The type of exception (as a class name). 2360 ExceptionType string `json:"exceptionType,omitempty"` 2361 2362 // FlowStepId: The step that failed. 2363 FlowStepId string `json:"flowStepId,omitempty"` 2364 2365 // ForceSendFields is a list of field names (e.g. "ExceptionType") to 2366 // unconditionally include in API requests. By default, fields with 2367 // empty values are omitted from API requests. However, any non-pointer, 2368 // non-interface field appearing in ForceSendFields will be sent to the 2369 // server regardless of whether the field is empty or not. This may be 2370 // used to include empty fields in Patch requests. 2371 ForceSendFields []string `json:"-"` 2372 2373 // NullFields is a list of field names (e.g. "ExceptionType") to include 2374 // in API requests with the JSON null value. By default, fields with 2375 // empty values are omitted from API requests. However, any field with 2376 // an empty value appearing in NullFields will be sent to the server as 2377 // null. It is an error if a field in this list has a non-empty value. 2378 // This may be used to include null fields in Patch requests. 2379 NullFields []string `json:"-"` 2380} 2381 2382func (s *FlowErrorDetails) MarshalJSON() ([]byte, error) { 2383 type NoMethod FlowErrorDetails 2384 raw := NoMethod(*s) 2385 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2386} 2387 2388// GenerateConfigReportRequest: Request message for GenerateConfigReport 2389// method. 2390type GenerateConfigReportRequest struct { 2391 // NewConfig: Required. Service configuration for which we want to 2392 // generate the report. 2393 // For this version of API, the supported types 2394 // are 2395 // google.api.servicemanagement.v1.ConfigRef, 2396 // google.api.servicemanag 2397 // ement.v1.ConfigSource, 2398 // and google.api.Service 2399 NewConfig googleapi.RawMessage `json:"newConfig,omitempty"` 2400 2401 // OldConfig: Optional. Service configuration against which the 2402 // comparison will be done. 2403 // For this version of API, the supported types 2404 // are 2405 // google.api.servicemanagement.v1.ConfigRef, 2406 // google.api.servicemanag 2407 // ement.v1.ConfigSource, 2408 // and google.api.Service 2409 OldConfig googleapi.RawMessage `json:"oldConfig,omitempty"` 2410 2411 // ForceSendFields is a list of field names (e.g. "NewConfig") to 2412 // unconditionally include in API requests. By default, fields with 2413 // empty values are omitted from API requests. However, any non-pointer, 2414 // non-interface field appearing in ForceSendFields will be sent to the 2415 // server regardless of whether the field is empty or not. This may be 2416 // used to include empty fields in Patch requests. 2417 ForceSendFields []string `json:"-"` 2418 2419 // NullFields is a list of field names (e.g. "NewConfig") to include in 2420 // API requests with the JSON null value. By default, fields with empty 2421 // values are omitted from API requests. However, any field with an 2422 // empty value appearing in NullFields will be sent to the server as 2423 // null. It is an error if a field in this list has a non-empty value. 2424 // This may be used to include null fields in Patch requests. 2425 NullFields []string `json:"-"` 2426} 2427 2428func (s *GenerateConfigReportRequest) MarshalJSON() ([]byte, error) { 2429 type NoMethod GenerateConfigReportRequest 2430 raw := NoMethod(*s) 2431 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2432} 2433 2434// GenerateConfigReportResponse: Response message for 2435// GenerateConfigReport method. 2436type GenerateConfigReportResponse struct { 2437 // ChangeReports: list of ChangeReport, each corresponding to comparison 2438 // between two 2439 // service configurations. 2440 ChangeReports []*ChangeReport `json:"changeReports,omitempty"` 2441 2442 // Diagnostics: Errors / Linter warnings associated with the service 2443 // definition this 2444 // report 2445 // belongs to. 2446 Diagnostics []*Diagnostic `json:"diagnostics,omitempty"` 2447 2448 // Id: ID of the service configuration this report belongs to. 2449 Id string `json:"id,omitempty"` 2450 2451 // ServiceName: Name of the service this report belongs to. 2452 ServiceName string `json:"serviceName,omitempty"` 2453 2454 // ServerResponse contains the HTTP response code and headers from the 2455 // server. 2456 googleapi.ServerResponse `json:"-"` 2457 2458 // ForceSendFields is a list of field names (e.g. "ChangeReports") to 2459 // unconditionally include in API requests. By default, fields with 2460 // empty values are omitted from API requests. However, any non-pointer, 2461 // non-interface field appearing in ForceSendFields will be sent to the 2462 // server regardless of whether the field is empty or not. This may be 2463 // used to include empty fields in Patch requests. 2464 ForceSendFields []string `json:"-"` 2465 2466 // NullFields is a list of field names (e.g. "ChangeReports") to include 2467 // in API requests with the JSON null value. By default, fields with 2468 // empty values are omitted from API requests. However, any field with 2469 // an empty value appearing in NullFields will be sent to the server as 2470 // null. It is an error if a field in this list has a non-empty value. 2471 // This may be used to include null fields in Patch requests. 2472 NullFields []string `json:"-"` 2473} 2474 2475func (s *GenerateConfigReportResponse) MarshalJSON() ([]byte, error) { 2476 type NoMethod GenerateConfigReportResponse 2477 raw := NoMethod(*s) 2478 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2479} 2480 2481// GetIamPolicyRequest: Request message for `GetIamPolicy` method. 2482type GetIamPolicyRequest struct { 2483 // Options: OPTIONAL: A `GetPolicyOptions` object for specifying options 2484 // to 2485 // `GetIamPolicy`. This field is only used by Cloud IAM. 2486 Options *GetPolicyOptions `json:"options,omitempty"` 2487 2488 // ForceSendFields is a list of field names (e.g. "Options") to 2489 // unconditionally include in API requests. By default, fields with 2490 // empty values are omitted from API requests. However, any non-pointer, 2491 // non-interface field appearing in ForceSendFields will be sent to the 2492 // server regardless of whether the field is empty or not. This may be 2493 // used to include empty fields in Patch requests. 2494 ForceSendFields []string `json:"-"` 2495 2496 // NullFields is a list of field names (e.g. "Options") to include in 2497 // API requests with the JSON null value. By default, fields with empty 2498 // values are omitted from API requests. However, any field with an 2499 // empty value appearing in NullFields will be sent to the server as 2500 // null. It is an error if a field in this list has a non-empty value. 2501 // This may be used to include null fields in Patch requests. 2502 NullFields []string `json:"-"` 2503} 2504 2505func (s *GetIamPolicyRequest) MarshalJSON() ([]byte, error) { 2506 type NoMethod GetIamPolicyRequest 2507 raw := NoMethod(*s) 2508 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2509} 2510 2511// GetPolicyOptions: Encapsulates settings provided to GetIamPolicy. 2512type GetPolicyOptions struct { 2513 // RequestedPolicyVersion: Optional. The policy format version to be 2514 // returned. 2515 // 2516 // Valid values are 0, 1, and 3. Requests specifying an invalid value 2517 // will be 2518 // rejected. 2519 // 2520 // Requests for policies with any conditional bindings must specify 2521 // version 3. 2522 // Policies without any conditional bindings may specify any valid value 2523 // or 2524 // leave the field unset. 2525 RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"` 2526 2527 // ForceSendFields is a list of field names (e.g. 2528 // "RequestedPolicyVersion") to unconditionally include in API requests. 2529 // By default, fields with empty values are omitted from API requests. 2530 // However, any non-pointer, non-interface field appearing in 2531 // ForceSendFields will be sent to the server regardless of whether the 2532 // field is empty or not. This may be used to include empty fields in 2533 // Patch requests. 2534 ForceSendFields []string `json:"-"` 2535 2536 // NullFields is a list of field names (e.g. "RequestedPolicyVersion") 2537 // to include in API requests with the JSON null value. By default, 2538 // fields with empty values are omitted from API requests. However, any 2539 // field with an empty value appearing in NullFields will be sent to the 2540 // server as null. It is an error if a field in this list has a 2541 // non-empty value. This may be used to include null fields in Patch 2542 // requests. 2543 NullFields []string `json:"-"` 2544} 2545 2546func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) { 2547 type NoMethod GetPolicyOptions 2548 raw := NoMethod(*s) 2549 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2550} 2551 2552// Http: Defines the HTTP configuration for an API service. It contains 2553// a list of 2554// HttpRule, each specifying the mapping of an RPC method 2555// to one or more HTTP REST API methods. 2556type Http struct { 2557 // FullyDecodeReservedExpansion: When set to true, URL path parameters 2558 // will be fully URI-decoded except in 2559 // cases of single segment matches in reserved expansion, where "%2F" 2560 // will be 2561 // left encoded. 2562 // 2563 // The default behavior is to not decode RFC 6570 reserved characters in 2564 // multi 2565 // segment matches. 2566 FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"` 2567 2568 // Rules: A list of HTTP configuration rules that apply to individual 2569 // API methods. 2570 // 2571 // **NOTE:** All service configuration rules follow "last one wins" 2572 // order. 2573 Rules []*HttpRule `json:"rules,omitempty"` 2574 2575 // ForceSendFields is a list of field names (e.g. 2576 // "FullyDecodeReservedExpansion") to unconditionally include in API 2577 // requests. By default, fields with empty values are omitted from API 2578 // requests. However, any non-pointer, non-interface field appearing in 2579 // ForceSendFields will be sent to the server regardless of whether the 2580 // field is empty or not. This may be used to include empty fields in 2581 // Patch requests. 2582 ForceSendFields []string `json:"-"` 2583 2584 // NullFields is a list of field names (e.g. 2585 // "FullyDecodeReservedExpansion") to include in API requests with the 2586 // JSON null value. By default, fields with empty values are omitted 2587 // from API requests. However, any field with an empty value appearing 2588 // in NullFields will be sent to the server as null. It is an error if a 2589 // field in this list has a non-empty value. This may be used to include 2590 // null fields in Patch requests. 2591 NullFields []string `json:"-"` 2592} 2593 2594func (s *Http) MarshalJSON() ([]byte, error) { 2595 type NoMethod Http 2596 raw := NoMethod(*s) 2597 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 2598} 2599 2600// HttpRule: # gRPC Transcoding 2601// 2602// gRPC Transcoding is a feature for mapping between a gRPC method and 2603// one or 2604// more HTTP REST endpoints. It allows developers to build a single API 2605// service 2606// that supports both gRPC APIs and REST APIs. Many systems, including 2607// [Google 2608// APIs](https://github.com/googleapis/googleapis), 2609// [Cloud Endpoints](https://cloud.google.com/endpoints), 2610// [gRPC 2611// Gateway](https://github.com/grpc-ecosystem/grpc-gateway), 2612// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this 2613// feature 2614// and use it for large scale production services. 2615// 2616// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping 2617// specifies 2618// how different portions of the gRPC request message are mapped to the 2619// URL 2620// path, URL query parameters, and HTTP request body. It also controls 2621// how the 2622// gRPC response message is mapped to the HTTP response body. `HttpRule` 2623// is 2624// typically specified as an `google.api.http` annotation on the gRPC 2625// method. 2626// 2627// Each mapping specifies a URL path template and an HTTP method. The 2628// path 2629// template may refer to one or more fields in the gRPC request message, 2630// as long 2631// as each field is a non-repeated field with a primitive (non-message) 2632// type. 2633// The path template controls how fields of the request message are 2634// mapped to 2635// the URL path. 2636// 2637// Example: 2638// 2639// service Messaging { 2640// rpc GetMessage(GetMessageRequest) returns (Message) { 2641// option (google.api.http) = { 2642// get: "/v1/{name=messages/*}" 2643// }; 2644// } 2645// } 2646// message GetMessageRequest { 2647// string name = 1; // Mapped to URL path. 2648// } 2649// message Message { 2650// string text = 1; // The resource content. 2651// } 2652// 2653// This enables an HTTP REST to gRPC mapping as below: 2654// 2655// HTTP | gRPC 2656// -----|----- 2657// `GET /v1/messages/123456` | `GetMessage(name: 2658// "messages/123456")` 2659// 2660// Any fields in the request message which are not bound by the path 2661// template 2662// automatically become HTTP query parameters if there is no HTTP 2663// request body. 2664// For example: 2665// 2666// service Messaging { 2667// rpc GetMessage(GetMessageRequest) returns (Message) { 2668// option (google.api.http) = { 2669// get:"/v1/messages/{message_id}" 2670// }; 2671// } 2672// } 2673// message GetMessageRequest { 2674// message SubMessage { 2675// string subfield = 1; 2676// } 2677// string message_id = 1; // Mapped to URL path. 2678// int64 revision = 2; // Mapped to URL query parameter 2679// `revision`. 2680// SubMessage sub = 3; // Mapped to URL query parameter 2681// `sub.subfield`. 2682// } 2683// 2684// This enables a HTTP JSON to RPC mapping as below: 2685// 2686// HTTP | gRPC 2687// -----|----- 2688// `GET /v1/messages/123456?revision=2&sub.subfield=foo` 2689// | 2690// `GetMessage(message_id: "123456" revision: 2 sub: 2691// SubMessage(subfield: 2692// "foo"))` 2693// 2694// Note that fields which are mapped to URL query parameters must have 2695// a 2696// primitive type or a repeated primitive type or a non-repeated message 2697// type. 2698// In the case of a repeated type, the parameter can be repeated in the 2699// URL 2700// as `...?param=A¶m=B`. In the case of a message type, each field 2701// of the 2702// message is mapped to a separate parameter, such 2703// as 2704// `...?foo.a=A&foo.b=B&foo.c=C`. 2705// 2706// For HTTP methods that allow a request body, the `body` 2707// field 2708// specifies the mapping. Consider a REST update method on the 2709// message resource collection: 2710// 2711// service Messaging { 2712// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { 2713// option (google.api.http) = { 2714// patch: "/v1/messages/{message_id}" 2715// body: "message" 2716// }; 2717// } 2718// } 2719// message UpdateMessageRequest { 2720// string message_id = 1; // mapped to the URL 2721// Message message = 2; // mapped to the body 2722// } 2723// 2724// The following HTTP JSON to RPC mapping is enabled, where 2725// the 2726// representation of the JSON in the request body is determined 2727// by 2728// protos JSON encoding: 2729// 2730// HTTP | gRPC 2731// -----|----- 2732// `PATCH /v1/messages/123456 { "text": "Hi!" }` | 2733// `UpdateMessage(message_id: 2734// "123456" message { text: "Hi!" })` 2735// 2736// The special name `*` can be used in the body mapping to define 2737// that 2738// every field not bound by the path template should be mapped to 2739// the 2740// request body. This enables the following alternative definition 2741// of 2742// the update method: 2743// 2744// service Messaging { 2745// rpc UpdateMessage(Message) returns (Message) { 2746// option (google.api.http) = { 2747// patch: "/v1/messages/{message_id}" 2748// body: "*" 2749// }; 2750// } 2751// } 2752// message Message { 2753// string message_id = 1; 2754// string text = 2; 2755// } 2756// 2757// 2758// The following HTTP JSON to RPC mapping is enabled: 2759// 2760// HTTP | gRPC 2761// -----|----- 2762// `PATCH /v1/messages/123456 { "text": "Hi!" }` | 2763// `UpdateMessage(message_id: 2764// "123456" text: "Hi!")` 2765// 2766// Note that when using `*` in the body mapping, it is not possible 2767// to 2768// have HTTP parameters, as all fields not bound by the path end in 2769// the body. This makes this option more rarely used in practice 2770// when 2771// defining REST APIs. The common usage of `*` is in custom 2772// methods 2773// which don't use the URL at all for transferring data. 2774// 2775// It is possible to define multiple HTTP methods for one RPC by 2776// using 2777// the `additional_bindings` option. Example: 2778// 2779// service Messaging { 2780// rpc GetMessage(GetMessageRequest) returns (Message) { 2781// option (google.api.http) = { 2782// get: "/v1/messages/{message_id}" 2783// additional_bindings { 2784// get: "/v1/users/{user_id}/messages/{message_id}" 2785// } 2786// }; 2787// } 2788// } 2789// message GetMessageRequest { 2790// string message_id = 1; 2791// string user_id = 2; 2792// } 2793// 2794// This enables the following two alternative HTTP JSON to RPC 2795// mappings: 2796// 2797// HTTP | gRPC 2798// -----|----- 2799// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` 2800// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" 2801// message_id: 2802// "123456")` 2803// 2804// ## Rules for HTTP mapping 2805// 2806// 1. Leaf request fields (recursive expansion nested messages in the 2807// request 2808// message) are classified into three categories: 2809// - Fields referred by the path template. They are passed via the 2810// URL path. 2811// - Fields referred by the HttpRule.body. They are passed via the 2812// HTTP 2813// request body. 2814// - All other fields are passed via the URL query parameters, and 2815// the 2816// parameter name is the field path in the request message. A 2817// repeated 2818// field can be represented as multiple query parameters under the 2819// same 2820// name. 2821// 2. If HttpRule.body is "*", there is no URL query parameter, all 2822// fields 2823// are passed via URL path and HTTP request body. 2824// 3. If HttpRule.body is omitted, there is no HTTP request body, all 2825// fields are passed via URL path and URL query parameters. 2826// 2827// ### Path template syntax 2828// 2829// Template = "/" Segments [ Verb ] ; 2830// Segments = Segment { "/" Segment } ; 2831// Segment = "*" | "**" | LITERAL | Variable ; 2832// Variable = "{" FieldPath [ "=" Segments ] "}" ; 2833// FieldPath = IDENT { "." IDENT } ; 2834// Verb = ":" LITERAL ; 2835// 2836// The syntax `*` matches a single URL path segment. The syntax `**` 2837// matches 2838// zero or more URL path segments, which must be the last part of the 2839// URL path 2840// except the `Verb`. 2841// 2842// The syntax `Variable` matches part of the URL path as specified by 2843// its 2844// template. A variable template must not contain other variables. If a 2845// variable 2846// matches a single path segment, its template may be omitted, e.g. 2847// `{var}` 2848// is equivalent to `{var=*}`. 2849// 2850// The syntax `LITERAL` matches literal text in the URL path. If the 2851// `LITERAL` 2852// contains any reserved character, such characters should be 2853// percent-encoded 2854// before the matching. 2855// 2856// If a variable contains exactly one path segment, such as "{var}" 2857// or 2858// "{var=*}", when such a variable is expanded into a URL path on the 2859// client 2860// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. 2861// The 2862// server side does the reverse decoding. Such variables show up in 2863// the 2864// [Discovery 2865// Document](https://developers.google.com/discovery/v1/re 2866// ference/apis) as 2867// `{var}`. 2868// 2869// If a variable contains multiple path segments, such as 2870// "{var=foo/*}" 2871// or "{var=**}", when such a variable is expanded into a URL path on 2872// the 2873// client side, all characters except `[-_.~/0-9a-zA-Z]` are 2874// percent-encoded. 2875// The server side does the reverse decoding, except "%2F" and "%2f" are 2876// left 2877// unchanged. Such variables show up in 2878// the 2879// [Discovery 2880// Document](https://developers.google.com/discovery/v1/re 2881// ference/apis) as 2882// `{+var}`. 2883// 2884// ## Using gRPC API Service Configuration 2885// 2886// gRPC API Service Configuration (service config) is a configuration 2887// language 2888// for configuring a gRPC service to become a user-facing product. 2889// The 2890// service config is simply the YAML representation of the 2891// `google.api.Service` 2892// proto message. 2893// 2894// As an alternative to annotating your proto file, you can configure 2895// gRPC 2896// transcoding in your service config YAML files. You do this by 2897// specifying a 2898// `HttpRule` that maps the gRPC method to a REST endpoint, achieving 2899// the same 2900// effect as the proto annotation. This can be particularly useful if 2901// you 2902// have a proto that is reused in multiple services. Note that any 2903// transcoding 2904// specified in the service config will override any matching 2905// transcoding 2906// configuration in the proto. 2907// 2908// Example: 2909// 2910// http: 2911// rules: 2912// # Selects a gRPC method and applies HttpRule to it. 2913// - selector: example.v1.Messaging.GetMessage 2914// get: /v1/messages/{message_id}/{sub.subfield} 2915// 2916// ## Special notes 2917// 2918// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, 2919// the 2920// proto to JSON conversion must follow the 2921// [proto3 2922// specification](https://developers.google.com/protocol-buffers/ 2923// docs/proto3#json). 2924// 2925// While the single segment variable follows the semantics of 2926// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple 2927// String 2928// Expansion, the multi segment variable **does not** follow RFC 6570 2929// Section 2930// 3.2.3 Reserved Expansion. The reason is that the Reserved 2931// Expansion 2932// does not expand special characters like `?` and `#`, which would 2933// lead 2934// to invalid URLs. As the result, gRPC Transcoding uses a custom 2935// encoding 2936// for multi segment variables. 2937// 2938// The path variables **must not** refer to any repeated or mapped 2939// field, 2940// because client libraries are not capable of handling such variable 2941// expansion. 2942// 2943// The path variables **must not** capture the leading "/" character. 2944// The reason 2945// is that the most common use case "{var}" does not capture the leading 2946// "/" 2947// character. For consistency, all path variables must share the same 2948// behavior. 2949// 2950// Repeated message fields must not be mapped to URL query parameters, 2951// because 2952// no client library can support such complicated mapping. 2953// 2954// If an API needs to use a JSON array for request or response body, it 2955// can map 2956// the request or response body to a repeated field. However, some 2957// gRPC 2958// Transcoding implementations may not support this feature. 2959type HttpRule struct { 2960 // AdditionalBindings: Additional HTTP bindings for the selector. Nested 2961 // bindings must 2962 // not contain an `additional_bindings` field themselves (that is, 2963 // the nesting may only be one level deep). 2964 AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"` 2965 2966 // AllowHalfDuplex: When this flag is set to true, HTTP requests will be 2967 // allowed to invoke a 2968 // half-duplex streaming method. 2969 AllowHalfDuplex bool `json:"allowHalfDuplex,omitempty"` 2970 2971 // Body: The name of the request field whose value is mapped to the HTTP 2972 // request 2973 // body, or `*` for mapping all request fields not captured by the 2974 // path 2975 // pattern to the HTTP body, or omitted for not having any HTTP request 2976 // body. 2977 // 2978 // NOTE: the referred field must be present at the top-level of the 2979 // request 2980 // message type. 2981 Body string `json:"body,omitempty"` 2982 2983 // Custom: The custom pattern is used for specifying an HTTP method that 2984 // is not 2985 // included in the `pattern` field, such as HEAD, or "*" to leave 2986 // the 2987 // HTTP method unspecified for this rule. The wild-card rule is 2988 // useful 2989 // for services that provide content to Web (HTML) clients. 2990 Custom *CustomHttpPattern `json:"custom,omitempty"` 2991 2992 // Delete: Maps to HTTP DELETE. Used for deleting a resource. 2993 Delete string `json:"delete,omitempty"` 2994 2995 // Get: Maps to HTTP GET. Used for listing and getting information 2996 // about 2997 // resources. 2998 Get string `json:"get,omitempty"` 2999 3000 // Patch: Maps to HTTP PATCH. Used for updating a resource. 3001 Patch string `json:"patch,omitempty"` 3002 3003 // Post: Maps to HTTP POST. Used for creating a resource or performing 3004 // an action. 3005 Post string `json:"post,omitempty"` 3006 3007 // Put: Maps to HTTP PUT. Used for replacing a resource. 3008 Put string `json:"put,omitempty"` 3009 3010 // ResponseBody: Optional. The name of the response field whose value is 3011 // mapped to the HTTP 3012 // response body. When omitted, the entire response message will be 3013 // used 3014 // as the HTTP response body. 3015 // 3016 // NOTE: The referred field must be present at the top-level of the 3017 // response 3018 // message type. 3019 ResponseBody string `json:"responseBody,omitempty"` 3020 3021 // Selector: Selects a method to which this rule applies. 3022 // 3023 // Refer to selector for syntax details. 3024 Selector string `json:"selector,omitempty"` 3025 3026 // ForceSendFields is a list of field names (e.g. "AdditionalBindings") 3027 // to unconditionally include in API requests. By default, fields with 3028 // empty values are omitted from API requests. However, any non-pointer, 3029 // non-interface field appearing in ForceSendFields will be sent to the 3030 // server regardless of whether the field is empty or not. This may be 3031 // used to include empty fields in Patch requests. 3032 ForceSendFields []string `json:"-"` 3033 3034 // NullFields is a list of field names (e.g. "AdditionalBindings") to 3035 // include in API requests with the JSON null value. By default, fields 3036 // with empty values are omitted from API requests. However, any field 3037 // with an empty value appearing in NullFields will be sent to the 3038 // server as null. It is an error if a field in this list has a 3039 // non-empty value. This may be used to include null fields in Patch 3040 // requests. 3041 NullFields []string `json:"-"` 3042} 3043 3044func (s *HttpRule) MarshalJSON() ([]byte, error) { 3045 type NoMethod HttpRule 3046 raw := NoMethod(*s) 3047 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3048} 3049 3050// LabelDescriptor: A description of a label. 3051type LabelDescriptor struct { 3052 // Description: A human-readable description for the label. 3053 Description string `json:"description,omitempty"` 3054 3055 // Key: The label key. 3056 Key string `json:"key,omitempty"` 3057 3058 // ValueType: The type of data that can be assigned to the label. 3059 // 3060 // Possible values: 3061 // "STRING" - A variable-length string. This is the default. 3062 // "BOOL" - Boolean; true or false. 3063 // "INT64" - A 64-bit signed integer. 3064 ValueType string `json:"valueType,omitempty"` 3065 3066 // ForceSendFields is a list of field names (e.g. "Description") to 3067 // unconditionally include in API requests. By default, fields with 3068 // empty values are omitted from API requests. However, any non-pointer, 3069 // non-interface field appearing in ForceSendFields will be sent to the 3070 // server regardless of whether the field is empty or not. This may be 3071 // used to include empty fields in Patch requests. 3072 ForceSendFields []string `json:"-"` 3073 3074 // NullFields is a list of field names (e.g. "Description") to include 3075 // in API requests with the JSON null value. By default, fields with 3076 // empty values are omitted from API requests. However, any field with 3077 // an empty value appearing in NullFields will be sent to the server as 3078 // null. It is an error if a field in this list has a non-empty value. 3079 // This may be used to include null fields in Patch requests. 3080 NullFields []string `json:"-"` 3081} 3082 3083func (s *LabelDescriptor) MarshalJSON() ([]byte, error) { 3084 type NoMethod LabelDescriptor 3085 raw := NoMethod(*s) 3086 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3087} 3088 3089// ListOperationsResponse: The response message for 3090// Operations.ListOperations. 3091type ListOperationsResponse struct { 3092 // NextPageToken: The standard List next-page token. 3093 NextPageToken string `json:"nextPageToken,omitempty"` 3094 3095 // Operations: A list of operations that matches the specified filter in 3096 // the request. 3097 Operations []*Operation `json:"operations,omitempty"` 3098 3099 // ServerResponse contains the HTTP response code and headers from the 3100 // server. 3101 googleapi.ServerResponse `json:"-"` 3102 3103 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3104 // unconditionally include in API requests. By default, fields with 3105 // empty values are omitted from API requests. However, any non-pointer, 3106 // non-interface field appearing in ForceSendFields will be sent to the 3107 // server regardless of whether the field is empty or not. This may be 3108 // used to include empty fields in Patch requests. 3109 ForceSendFields []string `json:"-"` 3110 3111 // NullFields is a list of field names (e.g. "NextPageToken") to include 3112 // in API requests with the JSON null value. By default, fields with 3113 // empty values are omitted from API requests. However, any field with 3114 // an empty value appearing in NullFields will be sent to the server as 3115 // null. It is an error if a field in this list has a non-empty value. 3116 // This may be used to include null fields in Patch requests. 3117 NullFields []string `json:"-"` 3118} 3119 3120func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) { 3121 type NoMethod ListOperationsResponse 3122 raw := NoMethod(*s) 3123 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3124} 3125 3126// ListServiceConfigsResponse: Response message for ListServiceConfigs 3127// method. 3128type ListServiceConfigsResponse struct { 3129 // NextPageToken: The token of the next page of results. 3130 NextPageToken string `json:"nextPageToken,omitempty"` 3131 3132 // ServiceConfigs: The list of service configuration resources. 3133 ServiceConfigs []*Service `json:"serviceConfigs,omitempty"` 3134 3135 // ServerResponse contains the HTTP response code and headers from the 3136 // server. 3137 googleapi.ServerResponse `json:"-"` 3138 3139 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3140 // unconditionally include in API requests. By default, fields with 3141 // empty values are omitted from API requests. However, any non-pointer, 3142 // non-interface field appearing in ForceSendFields will be sent to the 3143 // server regardless of whether the field is empty or not. This may be 3144 // used to include empty fields in Patch requests. 3145 ForceSendFields []string `json:"-"` 3146 3147 // NullFields is a list of field names (e.g. "NextPageToken") to include 3148 // in API requests with the JSON null value. By default, fields with 3149 // empty values are omitted from API requests. However, any field with 3150 // an empty value appearing in NullFields will be sent to the server as 3151 // null. It is an error if a field in this list has a non-empty value. 3152 // This may be used to include null fields in Patch requests. 3153 NullFields []string `json:"-"` 3154} 3155 3156func (s *ListServiceConfigsResponse) MarshalJSON() ([]byte, error) { 3157 type NoMethod ListServiceConfigsResponse 3158 raw := NoMethod(*s) 3159 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3160} 3161 3162// ListServiceRolloutsResponse: Response message for ListServiceRollouts 3163// method. 3164type ListServiceRolloutsResponse struct { 3165 // NextPageToken: The token of the next page of results. 3166 NextPageToken string `json:"nextPageToken,omitempty"` 3167 3168 // Rollouts: The list of rollout resources. 3169 Rollouts []*Rollout `json:"rollouts,omitempty"` 3170 3171 // ServerResponse contains the HTTP response code and headers from the 3172 // server. 3173 googleapi.ServerResponse `json:"-"` 3174 3175 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3176 // unconditionally include in API requests. By default, fields with 3177 // empty values are omitted from API requests. However, any non-pointer, 3178 // non-interface field appearing in ForceSendFields will be sent to the 3179 // server regardless of whether the field is empty or not. This may be 3180 // used to include empty fields in Patch requests. 3181 ForceSendFields []string `json:"-"` 3182 3183 // NullFields is a list of field names (e.g. "NextPageToken") to include 3184 // in API requests with the JSON null value. By default, fields with 3185 // empty values are omitted from API requests. However, any field with 3186 // an empty value appearing in NullFields will be sent to the server as 3187 // null. It is an error if a field in this list has a non-empty value. 3188 // This may be used to include null fields in Patch requests. 3189 NullFields []string `json:"-"` 3190} 3191 3192func (s *ListServiceRolloutsResponse) MarshalJSON() ([]byte, error) { 3193 type NoMethod ListServiceRolloutsResponse 3194 raw := NoMethod(*s) 3195 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3196} 3197 3198// ListServicesResponse: Response message for `ListServices` method. 3199type ListServicesResponse struct { 3200 // NextPageToken: Token that can be passed to `ListServices` to resume a 3201 // paginated query. 3202 NextPageToken string `json:"nextPageToken,omitempty"` 3203 3204 // Services: The returned services will only have the name field set. 3205 Services []*ManagedService `json:"services,omitempty"` 3206 3207 // ServerResponse contains the HTTP response code and headers from the 3208 // server. 3209 googleapi.ServerResponse `json:"-"` 3210 3211 // ForceSendFields is a list of field names (e.g. "NextPageToken") to 3212 // unconditionally include in API requests. By default, fields with 3213 // empty values are omitted from API requests. However, any non-pointer, 3214 // non-interface field appearing in ForceSendFields will be sent to the 3215 // server regardless of whether the field is empty or not. This may be 3216 // used to include empty fields in Patch requests. 3217 ForceSendFields []string `json:"-"` 3218 3219 // NullFields is a list of field names (e.g. "NextPageToken") to include 3220 // in API requests with the JSON null value. By default, fields with 3221 // empty values are omitted from API requests. However, any field with 3222 // an empty value appearing in NullFields will be sent to the server as 3223 // null. It is an error if a field in this list has a non-empty value. 3224 // This may be used to include null fields in Patch requests. 3225 NullFields []string `json:"-"` 3226} 3227 3228func (s *ListServicesResponse) MarshalJSON() ([]byte, error) { 3229 type NoMethod ListServicesResponse 3230 raw := NoMethod(*s) 3231 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3232} 3233 3234// LogDescriptor: A description of a log type. Example in YAML format: 3235// 3236// - name: library.googleapis.com/activity_history 3237// description: The history of borrowing and returning library 3238// items. 3239// display_name: Activity 3240// labels: 3241// - key: /customer_id 3242// description: Identifier of a library customer 3243type LogDescriptor struct { 3244 // Description: A human-readable description of this log. This 3245 // information appears in 3246 // the documentation and can contain details. 3247 Description string `json:"description,omitempty"` 3248 3249 // DisplayName: The human-readable name for this log. This information 3250 // appears on 3251 // the user interface and should be concise. 3252 DisplayName string `json:"displayName,omitempty"` 3253 3254 // Labels: The set of labels that are available to describe a specific 3255 // log entry. 3256 // Runtime requests that contain labels not specified here 3257 // are 3258 // considered invalid. 3259 Labels []*LabelDescriptor `json:"labels,omitempty"` 3260 3261 // Name: The name of the log. It must be less than 512 characters long 3262 // and can 3263 // include the following characters: upper- and lower-case 3264 // alphanumeric 3265 // characters [A-Za-z0-9], and punctuation characters including 3266 // slash, underscore, hyphen, period [/_-.]. 3267 Name string `json:"name,omitempty"` 3268 3269 // ForceSendFields is a list of field names (e.g. "Description") to 3270 // unconditionally include in API requests. By default, fields with 3271 // empty values are omitted from API requests. However, any non-pointer, 3272 // non-interface field appearing in ForceSendFields will be sent to the 3273 // server regardless of whether the field is empty or not. This may be 3274 // used to include empty fields in Patch requests. 3275 ForceSendFields []string `json:"-"` 3276 3277 // NullFields is a list of field names (e.g. "Description") to include 3278 // in API requests with the JSON null value. By default, fields with 3279 // empty values are omitted from API requests. However, any field with 3280 // an empty value appearing in NullFields will be sent to the server as 3281 // null. It is an error if a field in this list has a non-empty value. 3282 // This may be used to include null fields in Patch requests. 3283 NullFields []string `json:"-"` 3284} 3285 3286func (s *LogDescriptor) MarshalJSON() ([]byte, error) { 3287 type NoMethod LogDescriptor 3288 raw := NoMethod(*s) 3289 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3290} 3291 3292// Logging: Logging configuration of the service. 3293// 3294// The following example shows how to configure logs to be sent to 3295// the 3296// producer and consumer projects. In the example, the 3297// `activity_history` 3298// log is sent to both the producer and consumer projects, whereas 3299// the 3300// `purchase_history` log is only sent to the producer project. 3301// 3302// monitored_resources: 3303// - type: library.googleapis.com/branch 3304// labels: 3305// - key: /city 3306// description: The city where the library branch is located 3307// in. 3308// - key: /name 3309// description: The name of the branch. 3310// logs: 3311// - name: activity_history 3312// labels: 3313// - key: /customer_id 3314// - name: purchase_history 3315// logging: 3316// producer_destinations: 3317// - monitored_resource: library.googleapis.com/branch 3318// logs: 3319// - activity_history 3320// - purchase_history 3321// consumer_destinations: 3322// - monitored_resource: library.googleapis.com/branch 3323// logs: 3324// - activity_history 3325type Logging struct { 3326 // ConsumerDestinations: Logging configurations for sending logs to the 3327 // consumer project. 3328 // There can be multiple consumer destinations, each one must have 3329 // a 3330 // different monitored resource type. A log can be used in at most 3331 // one consumer destination. 3332 ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"` 3333 3334 // ProducerDestinations: Logging configurations for sending logs to the 3335 // producer project. 3336 // There can be multiple producer destinations, each one must have 3337 // a 3338 // different monitored resource type. A log can be used in at most 3339 // one producer destination. 3340 ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"` 3341 3342 // ForceSendFields is a list of field names (e.g. 3343 // "ConsumerDestinations") to unconditionally include in API requests. 3344 // By default, fields with empty values are omitted from API requests. 3345 // However, any non-pointer, non-interface field appearing in 3346 // ForceSendFields will be sent to the server regardless of whether the 3347 // field is empty or not. This may be used to include empty fields in 3348 // Patch requests. 3349 ForceSendFields []string `json:"-"` 3350 3351 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 3352 // include in API requests with the JSON null value. By default, fields 3353 // with empty values are omitted from API requests. However, any field 3354 // with an empty value appearing in NullFields will be sent to the 3355 // server as null. It is an error if a field in this list has a 3356 // non-empty value. This may be used to include null fields in Patch 3357 // requests. 3358 NullFields []string `json:"-"` 3359} 3360 3361func (s *Logging) MarshalJSON() ([]byte, error) { 3362 type NoMethod Logging 3363 raw := NoMethod(*s) 3364 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3365} 3366 3367// LoggingDestination: Configuration of a specific logging destination 3368// (the producer project 3369// or the consumer project). 3370type LoggingDestination struct { 3371 // Logs: Names of the logs to be sent to this destination. Each name 3372 // must 3373 // be defined in the Service.logs section. If the log name is 3374 // not a domain scoped name, it will be automatically prefixed with 3375 // the service name followed by "/". 3376 Logs []string `json:"logs,omitempty"` 3377 3378 // MonitoredResource: The monitored resource type. The type must be 3379 // defined in the 3380 // Service.monitored_resources section. 3381 MonitoredResource string `json:"monitoredResource,omitempty"` 3382 3383 // ForceSendFields is a list of field names (e.g. "Logs") to 3384 // unconditionally include in API requests. By default, fields with 3385 // empty values are omitted from API requests. However, any non-pointer, 3386 // non-interface field appearing in ForceSendFields will be sent to the 3387 // server regardless of whether the field is empty or not. This may be 3388 // used to include empty fields in Patch requests. 3389 ForceSendFields []string `json:"-"` 3390 3391 // NullFields is a list of field names (e.g. "Logs") to include in API 3392 // requests with the JSON null value. By default, fields with empty 3393 // values are omitted from API requests. However, any field with an 3394 // empty value appearing in NullFields will be sent to the server as 3395 // null. It is an error if a field in this list has a non-empty value. 3396 // This may be used to include null fields in Patch requests. 3397 NullFields []string `json:"-"` 3398} 3399 3400func (s *LoggingDestination) MarshalJSON() ([]byte, error) { 3401 type NoMethod LoggingDestination 3402 raw := NoMethod(*s) 3403 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3404} 3405 3406// ManagedService: The full representation of a Service that is managed 3407// by 3408// Google Service Management. 3409type ManagedService struct { 3410 // ProducerProjectId: ID of the project that produces and owns this 3411 // service. 3412 ProducerProjectId string `json:"producerProjectId,omitempty"` 3413 3414 // ServiceName: The name of the service. See the 3415 // [overview](/service-management/overview) 3416 // for naming requirements. 3417 ServiceName string `json:"serviceName,omitempty"` 3418 3419 // ServerResponse contains the HTTP response code and headers from the 3420 // server. 3421 googleapi.ServerResponse `json:"-"` 3422 3423 // ForceSendFields is a list of field names (e.g. "ProducerProjectId") 3424 // to unconditionally include in API requests. By default, fields with 3425 // empty values are omitted from API requests. However, any non-pointer, 3426 // non-interface field appearing in ForceSendFields will be sent to the 3427 // server regardless of whether the field is empty or not. This may be 3428 // used to include empty fields in Patch requests. 3429 ForceSendFields []string `json:"-"` 3430 3431 // NullFields is a list of field names (e.g. "ProducerProjectId") to 3432 // include in API requests with the JSON null value. By default, fields 3433 // with empty values are omitted from API requests. However, any field 3434 // with an empty value appearing in NullFields will be sent to the 3435 // server as null. It is an error if a field in this list has a 3436 // non-empty value. This may be used to include null fields in Patch 3437 // requests. 3438 NullFields []string `json:"-"` 3439} 3440 3441func (s *ManagedService) MarshalJSON() ([]byte, error) { 3442 type NoMethod ManagedService 3443 raw := NoMethod(*s) 3444 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3445} 3446 3447// Method: Method represents a method of an API interface. 3448type Method struct { 3449 // Name: The simple name of this method. 3450 Name string `json:"name,omitempty"` 3451 3452 // Options: Any metadata attached to the method. 3453 Options []*Option `json:"options,omitempty"` 3454 3455 // RequestStreaming: If true, the request is streamed. 3456 RequestStreaming bool `json:"requestStreaming,omitempty"` 3457 3458 // RequestTypeUrl: A URL of the input message type. 3459 RequestTypeUrl string `json:"requestTypeUrl,omitempty"` 3460 3461 // ResponseStreaming: If true, the response is streamed. 3462 ResponseStreaming bool `json:"responseStreaming,omitempty"` 3463 3464 // ResponseTypeUrl: The URL of the output message type. 3465 ResponseTypeUrl string `json:"responseTypeUrl,omitempty"` 3466 3467 // Syntax: The source syntax of this method. 3468 // 3469 // Possible values: 3470 // "SYNTAX_PROTO2" - Syntax `proto2`. 3471 // "SYNTAX_PROTO3" - Syntax `proto3`. 3472 Syntax string `json:"syntax,omitempty"` 3473 3474 // ForceSendFields is a list of field names (e.g. "Name") to 3475 // unconditionally include in API requests. By default, fields with 3476 // empty values are omitted from API requests. However, any non-pointer, 3477 // non-interface field appearing in ForceSendFields will be sent to the 3478 // server regardless of whether the field is empty or not. This may be 3479 // used to include empty fields in Patch requests. 3480 ForceSendFields []string `json:"-"` 3481 3482 // NullFields is a list of field names (e.g. "Name") to include in API 3483 // requests with the JSON null value. By default, fields with empty 3484 // values are omitted from API requests. However, any field with an 3485 // empty value appearing in NullFields will be sent to the server as 3486 // null. It is an error if a field in this list has a non-empty value. 3487 // This may be used to include null fields in Patch requests. 3488 NullFields []string `json:"-"` 3489} 3490 3491func (s *Method) MarshalJSON() ([]byte, error) { 3492 type NoMethod Method 3493 raw := NoMethod(*s) 3494 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3495} 3496 3497// MetricDescriptor: Defines a metric type and its schema. Once a metric 3498// descriptor is created, 3499// deleting or altering it stops data collection and makes the metric 3500// type's 3501// existing data unusable. 3502type MetricDescriptor struct { 3503 // Description: A detailed description of the metric, which can be used 3504 // in documentation. 3505 Description string `json:"description,omitempty"` 3506 3507 // DisplayName: A concise name for the metric, which can be displayed in 3508 // user interfaces. 3509 // Use sentence case without an ending period, for example "Request 3510 // count". 3511 // This field is optional but it is recommended to be set for any 3512 // metrics 3513 // associated with user-visible concepts, such as Quota. 3514 DisplayName string `json:"displayName,omitempty"` 3515 3516 // Labels: The set of labels that can be used to describe a 3517 // specific 3518 // instance of this metric type. For example, 3519 // the 3520 // `appengine.googleapis.com/http/server/response_latencies` metric 3521 // type has a label for the HTTP response code, `response_code`, so 3522 // you can look at latencies for successful responses or just 3523 // for responses that failed. 3524 Labels []*LabelDescriptor `json:"labels,omitempty"` 3525 3526 // LaunchStage: Optional. The launch stage of the metric definition. 3527 // 3528 // Possible values: 3529 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 3530 // "EARLY_ACCESS" - Early Access features are limited to a closed 3531 // group of testers. To use 3532 // these features, you must sign up in advance and sign a Trusted 3533 // Tester 3534 // agreement (which includes confidentiality provisions). These features 3535 // may 3536 // be unstable, changed in backward-incompatible ways, and are 3537 // not 3538 // guaranteed to be released. 3539 // "ALPHA" - Alpha is a limited availability test for releases before 3540 // they are cleared 3541 // for widespread use. By Alpha, all significant design issues are 3542 // resolved 3543 // and we are in the process of verifying functionality. Alpha 3544 // customers 3545 // need to apply for access, agree to applicable terms, and have 3546 // their 3547 // projects whitelisted. Alpha releases don’t have to be feature 3548 // complete, 3549 // no SLAs are provided, and there are no technical support obligations, 3550 // but 3551 // they will be far enough along that customers can actually use them 3552 // in 3553 // test environments or for limited-use tests -- just like they would 3554 // in 3555 // normal production cases. 3556 // "BETA" - Beta is the point at which we are ready to open a release 3557 // for any 3558 // customer to use. There are no SLA or technical support obligations in 3559 // a 3560 // Beta release. Products will be complete from a feature perspective, 3561 // but 3562 // may have some open outstanding issues. Beta releases are suitable 3563 // for 3564 // limited production use cases. 3565 // "GA" - GA features are open to all developers and are considered 3566 // stable and 3567 // fully qualified for production use. 3568 // "DEPRECATED" - Deprecated features are scheduled to be shut down 3569 // and removed. For more 3570 // information, see the “Deprecation Policy” section of our [Terms 3571 // of 3572 // Service](https://cloud.google.com/terms/) 3573 // and the [Google Cloud Platform Subject to the 3574 // Deprecation 3575 // Policy](https://cloud.google.com/terms/deprecation) documentation. 3576 LaunchStage string `json:"launchStage,omitempty"` 3577 3578 // Metadata: Optional. Metadata which can be used to guide usage of the 3579 // metric. 3580 Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"` 3581 3582 // MetricKind: Whether the metric records instantaneous values, changes 3583 // to a value, etc. 3584 // Some combinations of `metric_kind` and `value_type` might not be 3585 // supported. 3586 // 3587 // Possible values: 3588 // "METRIC_KIND_UNSPECIFIED" - Do not use this default value. 3589 // "GAUGE" - An instantaneous measurement of a value. 3590 // "DELTA" - The change in a value during a time interval. 3591 // "CUMULATIVE" - A value accumulated over a time interval. 3592 // Cumulative 3593 // measurements in a time series should have the same start time 3594 // and increasing end times, until an event resets the cumulative 3595 // value to zero and sets a new start time for the following 3596 // points. 3597 MetricKind string `json:"metricKind,omitempty"` 3598 3599 // MonitoredResourceTypes: Read-only. If present, then a time 3600 // series, which is identified partially by 3601 // a metric type and a MonitoredResourceDescriptor, that is 3602 // associated 3603 // with this metric type can only be associated with one of the 3604 // monitored 3605 // resource types listed here. 3606 MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"` 3607 3608 // Name: The resource name of the metric descriptor. 3609 Name string `json:"name,omitempty"` 3610 3611 // Type: The metric type, including its DNS name prefix. The type is 3612 // not 3613 // URL-encoded. All user-defined metric types have the DNS 3614 // name 3615 // `custom.googleapis.com` or `external.googleapis.com`. Metric types 3616 // should 3617 // use a natural hierarchical grouping. For example: 3618 // 3619 // "custom.googleapis.com/invoice/paid/amount" 3620 // "external.googleapis.com/prometheus/up" 3621 // "appengine.googleapis.com/http/server/response_latencies" 3622 Type string `json:"type,omitempty"` 3623 3624 // Unit: The units in which the metric value is reported. It is only 3625 // applicable 3626 // if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The 3627 // `unit` 3628 // defines the representation of the stored metric values. 3629 // 3630 // Different systems may scale the values to be more easily displayed 3631 // (so a 3632 // value of `0.02KBy` _might_ be displayed as `20By`, and a value 3633 // of 3634 // `3523KBy` _might_ be displayed as `3.5MBy`). However, if the `unit` 3635 // is 3636 // `KBy`, then the value of the metric is always in thousands of bytes, 3637 // no 3638 // matter how it may be displayed.. 3639 // 3640 // If you want a custom metric to record the exact number of CPU-seconds 3641 // used 3642 // by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` 3643 // is 3644 // `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 3645 // 12,005 3646 // CPU-seconds, then the value is written as `12005`. 3647 // 3648 // Alternatively, if you want a custom metric to record data in a 3649 // more 3650 // granular way, you can create a `DOUBLE CUMULATIVE` metric whose 3651 // `unit` is 3652 // `ks{CPU}`, and then write the value `12.005` (which is 3653 // `12005/1000`), 3654 // or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). 3655 // 3656 // The supported units are a subset of [The Unified Code for Units 3657 // of 3658 // Measure](http://unitsofmeasure.org/ucum.html) standard: 3659 // 3660 // **Basic units (UNIT)** 3661 // 3662 // * `bit` bit 3663 // * `By` byte 3664 // * `s` second 3665 // * `min` minute 3666 // * `h` hour 3667 // * `d` day 3668 // 3669 // **Prefixes (PREFIX)** 3670 // 3671 // * `k` kilo (10^3) 3672 // * `M` mega (10^6) 3673 // * `G` giga (10^9) 3674 // * `T` tera (10^12) 3675 // * `P` peta (10^15) 3676 // * `E` exa (10^18) 3677 // * `Z` zetta (10^21) 3678 // * `Y` yotta (10^24) 3679 // 3680 // * `m` milli (10^-3) 3681 // * `u` micro (10^-6) 3682 // * `n` nano (10^-9) 3683 // * `p` pico (10^-12) 3684 // * `f` femto (10^-15) 3685 // * `a` atto (10^-18) 3686 // * `z` zepto (10^-21) 3687 // * `y` yocto (10^-24) 3688 // 3689 // * `Ki` kibi (2^10) 3690 // * `Mi` mebi (2^20) 3691 // * `Gi` gibi (2^30) 3692 // * `Ti` tebi (2^40) 3693 // * `Pi` pebi (2^50) 3694 // 3695 // **Grammar** 3696 // 3697 // The grammar also includes these connectors: 3698 // 3699 // * `/` division or ratio (as an infix operator). For examples, 3700 // `kBy/{email}` or `MiBy/10ms` (although you should almost 3701 // never 3702 // have `/s` in a metric `unit`; rates should always be 3703 // computed at 3704 // query time from the underlying cumulative or delta value). 3705 // * `.` multiplication or composition (as an infix operator). For 3706 // examples, `GBy.d` or `k{watt}.h`. 3707 // 3708 // The grammar for a unit is as follows: 3709 // 3710 // Expression = Component { "." Component } { "/" Component } ; 3711 // 3712 // Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] 3713 // | Annotation 3714 // | "1" 3715 // ; 3716 // 3717 // Annotation = "{" NAME "}" ; 3718 // 3719 // Notes: 3720 // 3721 // * `Annotation` is just a comment if it follows a `UNIT`. If the 3722 // annotation 3723 // is used alone, then the unit is equivalent to `1`. For examples, 3724 // `{request}/s == 1/s`, `By{transmitted}/s == By/s`. 3725 // * `NAME` is a sequence of non-blank printable ASCII characters not 3726 // containing `{` or `}`. 3727 // * `1` represents a unitary [dimensionless 3728 // unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, 3729 // such 3730 // as in `1/s`. It is typically used when none of the basic units 3731 // are 3732 // appropriate. For example, "new users per day" can be represented 3733 // as 3734 // `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 3735 // new 3736 // users). Alternatively, "thousands of page views per day" would be 3737 // represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a 3738 // metric 3739 // value of `5.3` would mean "5300 page views per day"). 3740 // * `%` represents dimensionless value of 1/100, and annotates values 3741 // giving 3742 // a percentage (so the metric values are typically in the range of 3743 // 0..100, 3744 // and a metric value `3` means "3 percent"). 3745 // * `10^2.%` indicates a metric contains a ratio, typically in the 3746 // range 3747 // 0..1, that will be multiplied by 100 and displayed as a 3748 // percentage 3749 // (so a metric value `0.03` means "3 percent"). 3750 Unit string `json:"unit,omitempty"` 3751 3752 // ValueType: Whether the measurement is an integer, a floating-point 3753 // number, etc. 3754 // Some combinations of `metric_kind` and `value_type` might not be 3755 // supported. 3756 // 3757 // Possible values: 3758 // "VALUE_TYPE_UNSPECIFIED" - Do not use this default value. 3759 // "BOOL" - The value is a boolean. 3760 // This value type can be used only if the metric kind is `GAUGE`. 3761 // "INT64" - The value is a signed 64-bit integer. 3762 // "DOUBLE" - The value is a double precision floating point number. 3763 // "STRING" - The value is a text string. 3764 // This value type can be used only if the metric kind is `GAUGE`. 3765 // "DISTRIBUTION" - The value is a `Distribution`. 3766 // "MONEY" - The value is money. 3767 ValueType string `json:"valueType,omitempty"` 3768 3769 // ForceSendFields is a list of field names (e.g. "Description") to 3770 // unconditionally include in API requests. By default, fields with 3771 // empty values are omitted from API requests. However, any non-pointer, 3772 // non-interface field appearing in ForceSendFields will be sent to the 3773 // server regardless of whether the field is empty or not. This may be 3774 // used to include empty fields in Patch requests. 3775 ForceSendFields []string `json:"-"` 3776 3777 // NullFields is a list of field names (e.g. "Description") to include 3778 // in API requests with the JSON null value. By default, fields with 3779 // empty values are omitted from API requests. However, any field with 3780 // an empty value appearing in NullFields will be sent to the server as 3781 // null. It is an error if a field in this list has a non-empty value. 3782 // This may be used to include null fields in Patch requests. 3783 NullFields []string `json:"-"` 3784} 3785 3786func (s *MetricDescriptor) MarshalJSON() ([]byte, error) { 3787 type NoMethod MetricDescriptor 3788 raw := NoMethod(*s) 3789 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3790} 3791 3792// MetricDescriptorMetadata: Additional annotations that can be used to 3793// guide the usage of a metric. 3794type MetricDescriptorMetadata struct { 3795 // IngestDelay: The delay of data points caused by ingestion. Data 3796 // points older than this 3797 // age are guaranteed to be ingested and available to be read, 3798 // excluding 3799 // data loss due to errors. 3800 IngestDelay string `json:"ingestDelay,omitempty"` 3801 3802 // LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage 3803 // instead. 3804 // 3805 // Possible values: 3806 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 3807 // "EARLY_ACCESS" - Early Access features are limited to a closed 3808 // group of testers. To use 3809 // these features, you must sign up in advance and sign a Trusted 3810 // Tester 3811 // agreement (which includes confidentiality provisions). These features 3812 // may 3813 // be unstable, changed in backward-incompatible ways, and are 3814 // not 3815 // guaranteed to be released. 3816 // "ALPHA" - Alpha is a limited availability test for releases before 3817 // they are cleared 3818 // for widespread use. By Alpha, all significant design issues are 3819 // resolved 3820 // and we are in the process of verifying functionality. Alpha 3821 // customers 3822 // need to apply for access, agree to applicable terms, and have 3823 // their 3824 // projects whitelisted. Alpha releases don’t have to be feature 3825 // complete, 3826 // no SLAs are provided, and there are no technical support obligations, 3827 // but 3828 // they will be far enough along that customers can actually use them 3829 // in 3830 // test environments or for limited-use tests -- just like they would 3831 // in 3832 // normal production cases. 3833 // "BETA" - Beta is the point at which we are ready to open a release 3834 // for any 3835 // customer to use. There are no SLA or technical support obligations in 3836 // a 3837 // Beta release. Products will be complete from a feature perspective, 3838 // but 3839 // may have some open outstanding issues. Beta releases are suitable 3840 // for 3841 // limited production use cases. 3842 // "GA" - GA features are open to all developers and are considered 3843 // stable and 3844 // fully qualified for production use. 3845 // "DEPRECATED" - Deprecated features are scheduled to be shut down 3846 // and removed. For more 3847 // information, see the “Deprecation Policy” section of our [Terms 3848 // of 3849 // Service](https://cloud.google.com/terms/) 3850 // and the [Google Cloud Platform Subject to the 3851 // Deprecation 3852 // Policy](https://cloud.google.com/terms/deprecation) documentation. 3853 LaunchStage string `json:"launchStage,omitempty"` 3854 3855 // SamplePeriod: The sampling period of metric data points. For metrics 3856 // which are written 3857 // periodically, consecutive data points are stored at this time 3858 // interval, 3859 // excluding data loss due to errors. Metrics with a higher granularity 3860 // have 3861 // a smaller sampling period. 3862 SamplePeriod string `json:"samplePeriod,omitempty"` 3863 3864 // ForceSendFields is a list of field names (e.g. "IngestDelay") to 3865 // unconditionally include in API requests. By default, fields with 3866 // empty values are omitted from API requests. However, any non-pointer, 3867 // non-interface field appearing in ForceSendFields will be sent to the 3868 // server regardless of whether the field is empty or not. This may be 3869 // used to include empty fields in Patch requests. 3870 ForceSendFields []string `json:"-"` 3871 3872 // NullFields is a list of field names (e.g. "IngestDelay") to include 3873 // in API requests with the JSON null value. By default, fields with 3874 // empty values are omitted from API requests. However, any field with 3875 // an empty value appearing in NullFields will be sent to the server as 3876 // null. It is an error if a field in this list has a non-empty value. 3877 // This may be used to include null fields in Patch requests. 3878 NullFields []string `json:"-"` 3879} 3880 3881func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) { 3882 type NoMethod MetricDescriptorMetadata 3883 raw := NoMethod(*s) 3884 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3885} 3886 3887// MetricRule: Bind API methods to metrics. Binding a method to a metric 3888// causes that 3889// metric's configured quota behaviors to apply to the method call. 3890type MetricRule struct { 3891 // MetricCosts: Metrics to update when the selected methods are called, 3892 // and the associated 3893 // cost applied to each metric. 3894 // 3895 // The key of the map is the metric name, and the values are the 3896 // amount 3897 // increased for the metric against which the quota limits are 3898 // defined. 3899 // The value must not be negative. 3900 MetricCosts map[string]string `json:"metricCosts,omitempty"` 3901 3902 // Selector: Selects the methods to which this rule applies. 3903 // 3904 // Refer to selector for syntax details. 3905 Selector string `json:"selector,omitempty"` 3906 3907 // ForceSendFields is a list of field names (e.g. "MetricCosts") to 3908 // unconditionally include in API requests. By default, fields with 3909 // empty values are omitted from API requests. However, any non-pointer, 3910 // non-interface field appearing in ForceSendFields will be sent to the 3911 // server regardless of whether the field is empty or not. This may be 3912 // used to include empty fields in Patch requests. 3913 ForceSendFields []string `json:"-"` 3914 3915 // NullFields is a list of field names (e.g. "MetricCosts") to include 3916 // in API requests with the JSON null value. By default, fields with 3917 // empty values are omitted from API requests. However, any field with 3918 // an empty value appearing in NullFields will be sent to the server as 3919 // null. It is an error if a field in this list has a non-empty value. 3920 // This may be used to include null fields in Patch requests. 3921 NullFields []string `json:"-"` 3922} 3923 3924func (s *MetricRule) MarshalJSON() ([]byte, error) { 3925 type NoMethod MetricRule 3926 raw := NoMethod(*s) 3927 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 3928} 3929 3930// Mixin: Declares an API Interface to be included in this interface. 3931// The including 3932// interface must redeclare all the methods from the included interface, 3933// but 3934// documentation and options are inherited as follows: 3935// 3936// - If after comment and whitespace stripping, the documentation 3937// string of the redeclared method is empty, it will be inherited 3938// from the original method. 3939// 3940// - Each annotation belonging to the service config (http, 3941// visibility) which is not set in the redeclared method will be 3942// inherited. 3943// 3944// - If an http annotation is inherited, the path pattern will be 3945// modified as follows. Any version prefix will be replaced by the 3946// version of the including interface plus the root path if 3947// specified. 3948// 3949// Example of a simple mixin: 3950// 3951// package google.acl.v1; 3952// service AccessControl { 3953// // Get the underlying ACL object. 3954// rpc GetAcl(GetAclRequest) returns (Acl) { 3955// option (google.api.http).get = "/v1/{resource=**}:getAcl"; 3956// } 3957// } 3958// 3959// package google.storage.v2; 3960// service Storage { 3961// // rpc GetAcl(GetAclRequest) returns (Acl); 3962// 3963// // Get a data record. 3964// rpc GetData(GetDataRequest) returns (Data) { 3965// option (google.api.http).get = "/v2/{resource=**}"; 3966// } 3967// } 3968// 3969// Example of a mixin configuration: 3970// 3971// apis: 3972// - name: google.storage.v2.Storage 3973// mixins: 3974// - name: google.acl.v1.AccessControl 3975// 3976// The mixin construct implies that all methods in `AccessControl` 3977// are 3978// also declared with same name and request/response types in 3979// `Storage`. A documentation generator or annotation processor will 3980// see the effective `Storage.GetAcl` method after 3981// inherting 3982// documentation and annotations as follows: 3983// 3984// service Storage { 3985// // Get the underlying ACL object. 3986// rpc GetAcl(GetAclRequest) returns (Acl) { 3987// option (google.api.http).get = "/v2/{resource=**}:getAcl"; 3988// } 3989// ... 3990// } 3991// 3992// Note how the version in the path pattern changed from `v1` to 3993// `v2`. 3994// 3995// If the `root` field in the mixin is specified, it should be 3996// a 3997// relative path under which inherited HTTP paths are placed. Example: 3998// 3999// apis: 4000// - name: google.storage.v2.Storage 4001// mixins: 4002// - name: google.acl.v1.AccessControl 4003// root: acls 4004// 4005// This implies the following inherited HTTP annotation: 4006// 4007// service Storage { 4008// // Get the underlying ACL object. 4009// rpc GetAcl(GetAclRequest) returns (Acl) { 4010// option (google.api.http).get = 4011// "/v2/acls/{resource=**}:getAcl"; 4012// } 4013// ... 4014// } 4015type Mixin struct { 4016 // Name: The fully qualified name of the interface which is included. 4017 Name string `json:"name,omitempty"` 4018 4019 // Root: If non-empty specifies a path under which inherited HTTP 4020 // paths 4021 // are rooted. 4022 Root string `json:"root,omitempty"` 4023 4024 // ForceSendFields is a list of field names (e.g. "Name") to 4025 // unconditionally include in API requests. By default, fields with 4026 // empty values are omitted from API requests. However, any non-pointer, 4027 // non-interface field appearing in ForceSendFields will be sent to the 4028 // server regardless of whether the field is empty or not. This may be 4029 // used to include empty fields in Patch requests. 4030 ForceSendFields []string `json:"-"` 4031 4032 // NullFields is a list of field names (e.g. "Name") to include in API 4033 // requests with the JSON null value. By default, fields with empty 4034 // values are omitted from API requests. However, any field with an 4035 // empty value appearing in NullFields will be sent to the server as 4036 // null. It is an error if a field in this list has a non-empty value. 4037 // This may be used to include null fields in Patch requests. 4038 NullFields []string `json:"-"` 4039} 4040 4041func (s *Mixin) MarshalJSON() ([]byte, error) { 4042 type NoMethod Mixin 4043 raw := NoMethod(*s) 4044 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4045} 4046 4047// MonitoredResourceDescriptor: An object that describes the schema of a 4048// MonitoredResource object using a 4049// type name and a set of labels. For example, the monitored 4050// resource 4051// descriptor for Google Compute Engine VM instances has a type 4052// of 4053// "gce_instance" and specifies the use of the labels "instance_id" 4054// and 4055// "zone" to identify particular VM instances. 4056// 4057// Different APIs can support different monitored resource types. APIs 4058// generally 4059// provide a `list` method that returns the monitored resource 4060// descriptors used 4061// by the API. 4062type MonitoredResourceDescriptor struct { 4063 // Description: Optional. A detailed description of the monitored 4064 // resource type that might 4065 // be used in documentation. 4066 Description string `json:"description,omitempty"` 4067 4068 // DisplayName: Optional. A concise name for the monitored resource type 4069 // that might be 4070 // displayed in user interfaces. It should be a Title Cased Noun 4071 // Phrase, 4072 // without any article or other determiners. For example, 4073 // "Google Cloud SQL Database". 4074 DisplayName string `json:"displayName,omitempty"` 4075 4076 // Labels: Required. A set of labels used to describe instances of this 4077 // monitored 4078 // resource type. For example, an individual Google Cloud SQL database 4079 // is 4080 // identified by values for the labels "database_id" and "zone". 4081 Labels []*LabelDescriptor `json:"labels,omitempty"` 4082 4083 // LaunchStage: Optional. The launch stage of the monitored resource 4084 // definition. 4085 // 4086 // Possible values: 4087 // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. 4088 // "EARLY_ACCESS" - Early Access features are limited to a closed 4089 // group of testers. To use 4090 // these features, you must sign up in advance and sign a Trusted 4091 // Tester 4092 // agreement (which includes confidentiality provisions). These features 4093 // may 4094 // be unstable, changed in backward-incompatible ways, and are 4095 // not 4096 // guaranteed to be released. 4097 // "ALPHA" - Alpha is a limited availability test for releases before 4098 // they are cleared 4099 // for widespread use. By Alpha, all significant design issues are 4100 // resolved 4101 // and we are in the process of verifying functionality. Alpha 4102 // customers 4103 // need to apply for access, agree to applicable terms, and have 4104 // their 4105 // projects whitelisted. Alpha releases don’t have to be feature 4106 // complete, 4107 // no SLAs are provided, and there are no technical support obligations, 4108 // but 4109 // they will be far enough along that customers can actually use them 4110 // in 4111 // test environments or for limited-use tests -- just like they would 4112 // in 4113 // normal production cases. 4114 // "BETA" - Beta is the point at which we are ready to open a release 4115 // for any 4116 // customer to use. There are no SLA or technical support obligations in 4117 // a 4118 // Beta release. Products will be complete from a feature perspective, 4119 // but 4120 // may have some open outstanding issues. Beta releases are suitable 4121 // for 4122 // limited production use cases. 4123 // "GA" - GA features are open to all developers and are considered 4124 // stable and 4125 // fully qualified for production use. 4126 // "DEPRECATED" - Deprecated features are scheduled to be shut down 4127 // and removed. For more 4128 // information, see the “Deprecation Policy” section of our [Terms 4129 // of 4130 // Service](https://cloud.google.com/terms/) 4131 // and the [Google Cloud Platform Subject to the 4132 // Deprecation 4133 // Policy](https://cloud.google.com/terms/deprecation) documentation. 4134 LaunchStage string `json:"launchStage,omitempty"` 4135 4136 // Name: Optional. The resource name of the monitored resource 4137 // descriptor: 4138 // "projects/{project_id}/monitoredResourceDescriptors/{type 4139 // }" where 4140 // {type} is the value of the `type` field in this object 4141 // and 4142 // {project_id} is a project ID that provides API-specific context 4143 // for 4144 // accessing the type. APIs that do not use project information can use 4145 // the 4146 // resource name format "monitoredResourceDescriptors/{type}". 4147 Name string `json:"name,omitempty"` 4148 4149 // Type: Required. The monitored resource type. For example, the 4150 // type 4151 // "cloudsql_database" represents databases in Google Cloud SQL. 4152 // The maximum length of this value is 256 characters. 4153 Type string `json:"type,omitempty"` 4154 4155 // ForceSendFields is a list of field names (e.g. "Description") to 4156 // unconditionally include in API requests. By default, fields with 4157 // empty values are omitted from API requests. However, any non-pointer, 4158 // non-interface field appearing in ForceSendFields will be sent to the 4159 // server regardless of whether the field is empty or not. This may be 4160 // used to include empty fields in Patch requests. 4161 ForceSendFields []string `json:"-"` 4162 4163 // NullFields is a list of field names (e.g. "Description") to include 4164 // in API requests with the JSON null value. By default, fields with 4165 // empty values are omitted from API requests. However, any field with 4166 // an empty value appearing in NullFields will be sent to the server as 4167 // null. It is an error if a field in this list has a non-empty value. 4168 // This may be used to include null fields in Patch requests. 4169 NullFields []string `json:"-"` 4170} 4171 4172func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) { 4173 type NoMethod MonitoredResourceDescriptor 4174 raw := NoMethod(*s) 4175 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4176} 4177 4178// Monitoring: Monitoring configuration of the service. 4179// 4180// The example below shows how to configure monitored resources and 4181// metrics 4182// for monitoring. In the example, a monitored resource and two metrics 4183// are 4184// defined. The `library.googleapis.com/book/returned_count` metric is 4185// sent 4186// to both producer and consumer projects, whereas 4187// the 4188// `library.googleapis.com/book/overdue_count` metric is only sent to 4189// the 4190// consumer project. 4191// 4192// monitored_resources: 4193// - type: library.googleapis.com/branch 4194// labels: 4195// - key: /city 4196// description: The city where the library branch is located 4197// in. 4198// - key: /name 4199// description: The name of the branch. 4200// metrics: 4201// - name: library.googleapis.com/book/returned_count 4202// metric_kind: DELTA 4203// value_type: INT64 4204// labels: 4205// - key: /customer_id 4206// - name: library.googleapis.com/book/overdue_count 4207// metric_kind: GAUGE 4208// value_type: INT64 4209// labels: 4210// - key: /customer_id 4211// monitoring: 4212// producer_destinations: 4213// - monitored_resource: library.googleapis.com/branch 4214// metrics: 4215// - library.googleapis.com/book/returned_count 4216// consumer_destinations: 4217// - monitored_resource: library.googleapis.com/branch 4218// metrics: 4219// - library.googleapis.com/book/returned_count 4220// - library.googleapis.com/book/overdue_count 4221type Monitoring struct { 4222 // ConsumerDestinations: Monitoring configurations for sending metrics 4223 // to the consumer project. 4224 // There can be multiple consumer destinations. A monitored resouce type 4225 // may 4226 // appear in multiple monitoring destinations if different aggregations 4227 // are 4228 // needed for different sets of metrics associated with that 4229 // monitored 4230 // resource type. A monitored resource and metric pair may only be used 4231 // once 4232 // in the Monitoring configuration. 4233 ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"` 4234 4235 // ProducerDestinations: Monitoring configurations for sending metrics 4236 // to the producer project. 4237 // There can be multiple producer destinations. A monitored resouce type 4238 // may 4239 // appear in multiple monitoring destinations if different aggregations 4240 // are 4241 // needed for different sets of metrics associated with that 4242 // monitored 4243 // resource type. A monitored resource and metric pair may only be used 4244 // once 4245 // in the Monitoring configuration. 4246 ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"` 4247 4248 // ForceSendFields is a list of field names (e.g. 4249 // "ConsumerDestinations") to unconditionally include in API requests. 4250 // By default, fields with empty values are omitted from API requests. 4251 // However, any non-pointer, non-interface field appearing in 4252 // ForceSendFields will be sent to the server regardless of whether the 4253 // field is empty or not. This may be used to include empty fields in 4254 // Patch requests. 4255 ForceSendFields []string `json:"-"` 4256 4257 // NullFields is a list of field names (e.g. "ConsumerDestinations") to 4258 // include in API requests with the JSON null value. By default, fields 4259 // with empty values are omitted from API requests. However, any field 4260 // with an empty value appearing in NullFields will be sent to the 4261 // server as null. It is an error if a field in this list has a 4262 // non-empty value. This may be used to include null fields in Patch 4263 // requests. 4264 NullFields []string `json:"-"` 4265} 4266 4267func (s *Monitoring) MarshalJSON() ([]byte, error) { 4268 type NoMethod Monitoring 4269 raw := NoMethod(*s) 4270 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4271} 4272 4273// MonitoringDestination: Configuration of a specific monitoring 4274// destination (the producer project 4275// or the consumer project). 4276type MonitoringDestination struct { 4277 // Metrics: Types of the metrics to report to this monitoring 4278 // destination. 4279 // Each type must be defined in Service.metrics section. 4280 Metrics []string `json:"metrics,omitempty"` 4281 4282 // MonitoredResource: The monitored resource type. The type must be 4283 // defined in 4284 // Service.monitored_resources section. 4285 MonitoredResource string `json:"monitoredResource,omitempty"` 4286 4287 // ForceSendFields is a list of field names (e.g. "Metrics") to 4288 // unconditionally include in API requests. By default, fields with 4289 // empty values are omitted from API requests. However, any non-pointer, 4290 // non-interface field appearing in ForceSendFields will be sent to the 4291 // server regardless of whether the field is empty or not. This may be 4292 // used to include empty fields in Patch requests. 4293 ForceSendFields []string `json:"-"` 4294 4295 // NullFields is a list of field names (e.g. "Metrics") to include in 4296 // API requests with the JSON null value. By default, fields with empty 4297 // values are omitted from API requests. However, any field with an 4298 // empty value appearing in NullFields will be sent to the server as 4299 // null. It is an error if a field in this list has a non-empty value. 4300 // This may be used to include null fields in Patch requests. 4301 NullFields []string `json:"-"` 4302} 4303 4304func (s *MonitoringDestination) MarshalJSON() ([]byte, error) { 4305 type NoMethod MonitoringDestination 4306 raw := NoMethod(*s) 4307 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4308} 4309 4310// OAuthRequirements: OAuth scopes are a way to define data and 4311// permissions on data. For example, 4312// there are scopes defined for "Read-only access to Google Calendar" 4313// and 4314// "Access to Cloud Platform". Users can consent to a scope for an 4315// application, 4316// giving it permission to access that data on their behalf. 4317// 4318// OAuth scope specifications should be fairly coarse grained; a user 4319// will need 4320// to see and understand the text description of what your scope 4321// means. 4322// 4323// In most cases: use one or at most two OAuth scopes for an entire 4324// family of 4325// products. If your product has multiple APIs, you should probably be 4326// sharing 4327// the OAuth scope across all of those APIs. 4328// 4329// When you need finer grained OAuth consent screens: talk with your 4330// product 4331// management about how developers will use them in practice. 4332// 4333// Please note that even though each of the canonical scopes is enough 4334// for a 4335// request to be accepted and passed to the backend, a request can still 4336// fail 4337// due to the backend requiring additional scopes or permissions. 4338type OAuthRequirements struct { 4339 // CanonicalScopes: The list of publicly documented OAuth scopes that 4340 // are allowed access. An 4341 // OAuth token containing any of these scopes will be 4342 // accepted. 4343 // 4344 // Example: 4345 // 4346 // canonical_scopes: https://www.googleapis.com/auth/calendar, 4347 // https://www.googleapis.com/auth/calendar.read 4348 CanonicalScopes string `json:"canonicalScopes,omitempty"` 4349 4350 // ForceSendFields is a list of field names (e.g. "CanonicalScopes") to 4351 // unconditionally include in API requests. By default, fields with 4352 // empty values are omitted from API requests. However, any non-pointer, 4353 // non-interface field appearing in ForceSendFields will be sent to the 4354 // server regardless of whether the field is empty or not. This may be 4355 // used to include empty fields in Patch requests. 4356 ForceSendFields []string `json:"-"` 4357 4358 // NullFields is a list of field names (e.g. "CanonicalScopes") to 4359 // include in API requests with the JSON null value. By default, fields 4360 // with empty values are omitted from API requests. However, any field 4361 // with an empty value appearing in NullFields will be sent to the 4362 // server as null. It is an error if a field in this list has a 4363 // non-empty value. This may be used to include null fields in Patch 4364 // requests. 4365 NullFields []string `json:"-"` 4366} 4367 4368func (s *OAuthRequirements) MarshalJSON() ([]byte, error) { 4369 type NoMethod OAuthRequirements 4370 raw := NoMethod(*s) 4371 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4372} 4373 4374// Operation: This resource represents a long-running operation that is 4375// the result of a 4376// network API call. 4377type Operation struct { 4378 // Done: If the value is `false`, it means the operation is still in 4379 // progress. 4380 // If `true`, the operation is completed, and either `error` or 4381 // `response` is 4382 // available. 4383 Done bool `json:"done,omitempty"` 4384 4385 // Error: The error result of the operation in case of failure or 4386 // cancellation. 4387 Error *Status `json:"error,omitempty"` 4388 4389 // Metadata: Service-specific metadata associated with the operation. 4390 // It typically 4391 // contains progress information and common metadata such as create 4392 // time. 4393 // Some services might not provide such metadata. Any method that 4394 // returns a 4395 // long-running operation should document the metadata type, if any. 4396 Metadata googleapi.RawMessage `json:"metadata,omitempty"` 4397 4398 // Name: The server-assigned name, which is only unique within the same 4399 // service that 4400 // originally returns it. If you use the default HTTP mapping, 4401 // the 4402 // `name` should be a resource name ending with 4403 // `operations/{unique_id}`. 4404 Name string `json:"name,omitempty"` 4405 4406 // Response: The normal response of the operation in case of success. 4407 // If the original 4408 // method returns no data on success, such as `Delete`, the response 4409 // is 4410 // `google.protobuf.Empty`. If the original method is 4411 // standard 4412 // `Get`/`Create`/`Update`, the response should be the resource. For 4413 // other 4414 // methods, the response should have the type `XxxResponse`, where 4415 // `Xxx` 4416 // is the original method name. For example, if the original method 4417 // name 4418 // is `TakeSnapshot()`, the inferred response type 4419 // is 4420 // `TakeSnapshotResponse`. 4421 Response googleapi.RawMessage `json:"response,omitempty"` 4422 4423 // ServerResponse contains the HTTP response code and headers from the 4424 // server. 4425 googleapi.ServerResponse `json:"-"` 4426 4427 // ForceSendFields is a list of field names (e.g. "Done") to 4428 // unconditionally include in API requests. By default, fields with 4429 // empty values are omitted from API requests. However, any non-pointer, 4430 // non-interface field appearing in ForceSendFields will be sent to the 4431 // server regardless of whether the field is empty or not. This may be 4432 // used to include empty fields in Patch requests. 4433 ForceSendFields []string `json:"-"` 4434 4435 // NullFields is a list of field names (e.g. "Done") to include in API 4436 // requests with the JSON null value. By default, fields with empty 4437 // values are omitted from API requests. However, any field with an 4438 // empty value appearing in NullFields will be sent to the server as 4439 // null. It is an error if a field in this list has a non-empty value. 4440 // This may be used to include null fields in Patch requests. 4441 NullFields []string `json:"-"` 4442} 4443 4444func (s *Operation) MarshalJSON() ([]byte, error) { 4445 type NoMethod Operation 4446 raw := NoMethod(*s) 4447 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4448} 4449 4450// OperationMetadata: The metadata associated with a long running 4451// operation resource. 4452type OperationMetadata struct { 4453 // ProgressPercentage: Percentage of completion of this operation, 4454 // ranging from 0 to 100. 4455 ProgressPercentage int64 `json:"progressPercentage,omitempty"` 4456 4457 // ResourceNames: The full name of the resources that this operation is 4458 // directly 4459 // associated with. 4460 ResourceNames []string `json:"resourceNames,omitempty"` 4461 4462 // StartTime: The start time of the operation. 4463 StartTime string `json:"startTime,omitempty"` 4464 4465 // Steps: Detailed status information for each step. The order is 4466 // undetermined. 4467 Steps []*Step `json:"steps,omitempty"` 4468 4469 // ForceSendFields is a list of field names (e.g. "ProgressPercentage") 4470 // to unconditionally include in API requests. By default, fields with 4471 // empty values are omitted from API requests. However, any non-pointer, 4472 // non-interface field appearing in ForceSendFields will be sent to the 4473 // server regardless of whether the field is empty or not. This may be 4474 // used to include empty fields in Patch requests. 4475 ForceSendFields []string `json:"-"` 4476 4477 // NullFields is a list of field names (e.g. "ProgressPercentage") to 4478 // include in API requests with the JSON null value. By default, fields 4479 // with empty values are omitted from API requests. However, any field 4480 // with an empty value appearing in NullFields will be sent to the 4481 // server as null. It is an error if a field in this list has a 4482 // non-empty value. This may be used to include null fields in Patch 4483 // requests. 4484 NullFields []string `json:"-"` 4485} 4486 4487func (s *OperationMetadata) MarshalJSON() ([]byte, error) { 4488 type NoMethod OperationMetadata 4489 raw := NoMethod(*s) 4490 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4491} 4492 4493// Option: A protocol buffer option, which can be attached to a message, 4494// field, 4495// enumeration, etc. 4496type Option struct { 4497 // Name: The option's name. For protobuf built-in options (options 4498 // defined in 4499 // descriptor.proto), this is the short name. For example, 4500 // "map_entry". 4501 // For custom options, it should be the fully-qualified name. For 4502 // example, 4503 // "google.api.http". 4504 Name string `json:"name,omitempty"` 4505 4506 // Value: The option's value packed in an Any message. If the value is a 4507 // primitive, 4508 // the corresponding wrapper type defined in 4509 // google/protobuf/wrappers.proto 4510 // should be used. If the value is an enum, it should be stored as an 4511 // int32 4512 // value using the google.protobuf.Int32Value type. 4513 Value googleapi.RawMessage `json:"value,omitempty"` 4514 4515 // ForceSendFields is a list of field names (e.g. "Name") to 4516 // unconditionally include in API requests. By default, fields with 4517 // empty values are omitted from API requests. However, any non-pointer, 4518 // non-interface field appearing in ForceSendFields will be sent to the 4519 // server regardless of whether the field is empty or not. This may be 4520 // used to include empty fields in Patch requests. 4521 ForceSendFields []string `json:"-"` 4522 4523 // NullFields is a list of field names (e.g. "Name") to include in API 4524 // requests with the JSON null value. By default, fields with empty 4525 // values are omitted from API requests. However, any field with an 4526 // empty value appearing in NullFields will be sent to the server as 4527 // null. It is an error if a field in this list has a non-empty value. 4528 // This may be used to include null fields in Patch requests. 4529 NullFields []string `json:"-"` 4530} 4531 4532func (s *Option) MarshalJSON() ([]byte, error) { 4533 type NoMethod Option 4534 raw := NoMethod(*s) 4535 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4536} 4537 4538// Page: Represents a documentation page. A page can contain subpages to 4539// represent 4540// nested documentation set structure. 4541type Page struct { 4542 // Content: The Markdown content of the page. You can use <code>(== 4543 // include {path} 4544 // ==)</code> to include content from a Markdown file. 4545 Content string `json:"content,omitempty"` 4546 4547 // Name: The name of the page. It will be used as an identity of the 4548 // page to 4549 // generate URI of the page, text of the link to this page in 4550 // navigation, 4551 // etc. The full page name (start from the root page name to this 4552 // page 4553 // concatenated with `.`) can be used as reference to the page in 4554 // your 4555 // documentation. For example: 4556 // <pre><code>pages: 4557 // - name: Tutorial 4558 // content: (== include tutorial.md ==) 4559 // subpages: 4560 // - name: Java 4561 // content: (== include tutorial_java.md 4562 // ==) 4563 // </code></pre> 4564 // You can reference `Java` page using Markdown reference link 4565 // syntax: 4566 // `Java`. 4567 Name string `json:"name,omitempty"` 4568 4569 // Subpages: Subpages of this page. The order of subpages specified here 4570 // will be 4571 // honored in the generated docset. 4572 Subpages []*Page `json:"subpages,omitempty"` 4573 4574 // ForceSendFields is a list of field names (e.g. "Content") to 4575 // unconditionally include in API requests. By default, fields with 4576 // empty values are omitted from API requests. However, any non-pointer, 4577 // non-interface field appearing in ForceSendFields will be sent to the 4578 // server regardless of whether the field is empty or not. This may be 4579 // used to include empty fields in Patch requests. 4580 ForceSendFields []string `json:"-"` 4581 4582 // NullFields is a list of field names (e.g. "Content") to include in 4583 // API requests with the JSON null value. By default, fields with empty 4584 // values are omitted from API requests. However, any field with an 4585 // empty value appearing in NullFields will be sent to the server as 4586 // null. It is an error if a field in this list has a non-empty value. 4587 // This may be used to include null fields in Patch requests. 4588 NullFields []string `json:"-"` 4589} 4590 4591func (s *Page) MarshalJSON() ([]byte, error) { 4592 type NoMethod Page 4593 raw := NoMethod(*s) 4594 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4595} 4596 4597// Policy: An Identity and Access Management (IAM) policy, which 4598// specifies access 4599// controls for Google Cloud resources. 4600// 4601// 4602// A `Policy` is a collection of `bindings`. A `binding` binds one or 4603// more 4604// `members` to a single `role`. Members can be user accounts, service 4605// accounts, 4606// Google groups, and domains (such as G Suite). A `role` is a named 4607// list of 4608// permissions; each `role` can be an IAM predefined role or a 4609// user-created 4610// custom role. 4611// 4612// Optionally, a `binding` can specify a `condition`, which is a 4613// logical 4614// expression that allows access to a resource only if the expression 4615// evaluates 4616// to `true`. A condition can add constraints based on attributes of 4617// the 4618// request, the resource, or both. 4619// 4620// **JSON example:** 4621// 4622// { 4623// "bindings": [ 4624// { 4625// "role": "roles/resourcemanager.organizationAdmin", 4626// "members": [ 4627// "user:mike@example.com", 4628// "group:admins@example.com", 4629// "domain:google.com", 4630// 4631// "serviceAccount:my-project-id@appspot.gserviceaccount.com" 4632// ] 4633// }, 4634// { 4635// "role": "roles/resourcemanager.organizationViewer", 4636// "members": ["user:eve@example.com"], 4637// "condition": { 4638// "title": "expirable access", 4639// "description": "Does not grant access after Sep 2020", 4640// "expression": "request.time < 4641// timestamp('2020-10-01T00:00:00.000Z')", 4642// } 4643// } 4644// ], 4645// "etag": "BwWWja0YfJA=", 4646// "version": 3 4647// } 4648// 4649// **YAML example:** 4650// 4651// bindings: 4652// - members: 4653// - user:mike@example.com 4654// - group:admins@example.com 4655// - domain:google.com 4656// - serviceAccount:my-project-id@appspot.gserviceaccount.com 4657// role: roles/resourcemanager.organizationAdmin 4658// - members: 4659// - user:eve@example.com 4660// role: roles/resourcemanager.organizationViewer 4661// condition: 4662// title: expirable access 4663// description: Does not grant access after Sep 2020 4664// expression: request.time < 4665// timestamp('2020-10-01T00:00:00.000Z') 4666// - etag: BwWWja0YfJA= 4667// - version: 3 4668// 4669// For a description of IAM and its features, see the 4670// [IAM documentation](https://cloud.google.com/iam/docs/). 4671type Policy struct { 4672 // AuditConfigs: Specifies cloud audit logging configuration for this 4673 // policy. 4674 AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"` 4675 4676 // Bindings: Associates a list of `members` to a `role`. Optionally, may 4677 // specify a 4678 // `condition` that determines how and when the `bindings` are applied. 4679 // Each 4680 // of the `bindings` must contain at least one member. 4681 Bindings []*Binding `json:"bindings,omitempty"` 4682 4683 // Etag: `etag` is used for optimistic concurrency control as a way to 4684 // help 4685 // prevent simultaneous updates of a policy from overwriting each 4686 // other. 4687 // It is strongly suggested that systems make use of the `etag` in 4688 // the 4689 // read-modify-write cycle to perform policy updates in order to avoid 4690 // race 4691 // conditions: An `etag` is returned in the response to `getIamPolicy`, 4692 // and 4693 // systems are expected to put that etag in the request to 4694 // `setIamPolicy` to 4695 // ensure that their change will be applied to the same version of the 4696 // policy. 4697 // 4698 // **Important:** If you use IAM Conditions, you must include the `etag` 4699 // field 4700 // whenever you call `setIamPolicy`. If you omit this field, then IAM 4701 // allows 4702 // you to overwrite a version `3` policy with a version `1` policy, and 4703 // all of 4704 // the conditions in the version `3` policy are lost. 4705 Etag string `json:"etag,omitempty"` 4706 4707 // Version: Specifies the format of the policy. 4708 // 4709 // Valid values are `0`, `1`, and `3`. Requests that specify an invalid 4710 // value 4711 // are rejected. 4712 // 4713 // Any operation that affects conditional role bindings must specify 4714 // version 4715 // `3`. This requirement applies to the following operations: 4716 // 4717 // * Getting a policy that includes a conditional role binding 4718 // * Adding a conditional role binding to a policy 4719 // * Changing a conditional role binding in a policy 4720 // * Removing any role binding, with or without a condition, from a 4721 // policy 4722 // that includes conditions 4723 // 4724 // **Important:** If you use IAM Conditions, you must include the `etag` 4725 // field 4726 // whenever you call `setIamPolicy`. If you omit this field, then IAM 4727 // allows 4728 // you to overwrite a version `3` policy with a version `1` policy, and 4729 // all of 4730 // the conditions in the version `3` policy are lost. 4731 // 4732 // If a policy does not include any conditions, operations on that 4733 // policy may 4734 // specify any valid version or leave the field unset. 4735 Version int64 `json:"version,omitempty"` 4736 4737 // ServerResponse contains the HTTP response code and headers from the 4738 // server. 4739 googleapi.ServerResponse `json:"-"` 4740 4741 // ForceSendFields is a list of field names (e.g. "AuditConfigs") to 4742 // unconditionally include in API requests. By default, fields with 4743 // empty values are omitted from API requests. However, any non-pointer, 4744 // non-interface field appearing in ForceSendFields will be sent to the 4745 // server regardless of whether the field is empty or not. This may be 4746 // used to include empty fields in Patch requests. 4747 ForceSendFields []string `json:"-"` 4748 4749 // NullFields is a list of field names (e.g. "AuditConfigs") to include 4750 // in API requests with the JSON null value. By default, fields with 4751 // empty values are omitted from API requests. However, any field with 4752 // an empty value appearing in NullFields will be sent to the server as 4753 // null. It is an error if a field in this list has a non-empty value. 4754 // This may be used to include null fields in Patch requests. 4755 NullFields []string `json:"-"` 4756} 4757 4758func (s *Policy) MarshalJSON() ([]byte, error) { 4759 type NoMethod Policy 4760 raw := NoMethod(*s) 4761 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4762} 4763 4764// Quota: Quota configuration helps to achieve fairness and budgeting in 4765// service 4766// usage. 4767// 4768// The metric based quota configuration works this way: 4769// - The service configuration defines a set of metrics. 4770// - For API calls, the quota.metric_rules maps methods to metrics with 4771// corresponding costs. 4772// - The quota.limits defines limits on the metrics, which will be used 4773// for 4774// quota checks at runtime. 4775// 4776// An example quota configuration in yaml format: 4777// 4778// quota: 4779// limits: 4780// 4781// - name: apiWriteQpsPerProject 4782// metric: library.googleapis.com/write_calls 4783// unit: "1/min/{project}" # rate limit for consumer projects 4784// values: 4785// STANDARD: 10000 4786// 4787// 4788// # The metric rules bind all methods to the read_calls metric, 4789// # except for the UpdateBook and DeleteBook methods. These two 4790// methods 4791// # are mapped to the write_calls metric, with the UpdateBook 4792// method 4793// # consuming at twice rate as the DeleteBook method. 4794// metric_rules: 4795// - selector: "*" 4796// metric_costs: 4797// library.googleapis.com/read_calls: 1 4798// - selector: google.example.library.v1.LibraryService.UpdateBook 4799// metric_costs: 4800// library.googleapis.com/write_calls: 2 4801// - selector: google.example.library.v1.LibraryService.DeleteBook 4802// metric_costs: 4803// library.googleapis.com/write_calls: 1 4804// 4805// Corresponding Metric definition: 4806// 4807// metrics: 4808// - name: library.googleapis.com/read_calls 4809// display_name: Read requests 4810// metric_kind: DELTA 4811// value_type: INT64 4812// 4813// - name: library.googleapis.com/write_calls 4814// display_name: Write requests 4815// metric_kind: DELTA 4816// value_type: INT64 4817// 4818// 4819type Quota struct { 4820 // Limits: List of `QuotaLimit` definitions for the service. 4821 Limits []*QuotaLimit `json:"limits,omitempty"` 4822 4823 // MetricRules: List of `MetricRule` definitions, each one mapping a 4824 // selected method to one 4825 // or more metrics. 4826 MetricRules []*MetricRule `json:"metricRules,omitempty"` 4827 4828 // ForceSendFields is a list of field names (e.g. "Limits") to 4829 // unconditionally include in API requests. By default, fields with 4830 // empty values are omitted from API requests. However, any non-pointer, 4831 // non-interface field appearing in ForceSendFields will be sent to the 4832 // server regardless of whether the field is empty or not. This may be 4833 // used to include empty fields in Patch requests. 4834 ForceSendFields []string `json:"-"` 4835 4836 // NullFields is a list of field names (e.g. "Limits") to include in API 4837 // requests with the JSON null value. By default, fields with empty 4838 // values are omitted from API requests. However, any field with an 4839 // empty value appearing in NullFields will be sent to the server as 4840 // null. It is an error if a field in this list has a non-empty value. 4841 // This may be used to include null fields in Patch requests. 4842 NullFields []string `json:"-"` 4843} 4844 4845func (s *Quota) MarshalJSON() ([]byte, error) { 4846 type NoMethod Quota 4847 raw := NoMethod(*s) 4848 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4849} 4850 4851// QuotaLimit: `QuotaLimit` defines a specific limit that applies over a 4852// specified duration 4853// for a limit type. There can be at most one limit for a duration and 4854// limit 4855// type combination defined within a `QuotaGroup`. 4856type QuotaLimit struct { 4857 // DefaultLimit: Default number of tokens that can be consumed during 4858 // the specified 4859 // duration. This is the number of tokens assigned when a 4860 // client 4861 // application developer activates the service for his/her 4862 // project. 4863 // 4864 // Specifying a value of 0 will block all requests. This can be used if 4865 // you 4866 // are provisioning quota to selected consumers and blocking 4867 // others. 4868 // Similarly, a value of -1 will indicate an unlimited quota. No 4869 // other 4870 // negative values are allowed. 4871 // 4872 // Used by group-based quotas only. 4873 DefaultLimit int64 `json:"defaultLimit,omitempty,string"` 4874 4875 // Description: Optional. User-visible, extended description for this 4876 // quota limit. 4877 // Should be used only when more context is needed to understand this 4878 // limit 4879 // than provided by the limit's display name (see: `display_name`). 4880 Description string `json:"description,omitempty"` 4881 4882 // DisplayName: User-visible display name for this limit. 4883 // Optional. If not set, the UI will provide a default display name 4884 // based on 4885 // the quota configuration. This field can be used to override the 4886 // default 4887 // display name generated from the configuration. 4888 DisplayName string `json:"displayName,omitempty"` 4889 4890 // Duration: Duration of this limit in textual notation. Must be "100s" 4891 // or "1d". 4892 // 4893 // Used by group-based quotas only. 4894 Duration string `json:"duration,omitempty"` 4895 4896 // FreeTier: Free tier value displayed in the Developers Console for 4897 // this limit. 4898 // The free tier is the number of tokens that will be subtracted from 4899 // the 4900 // billed amount when billing is enabled. 4901 // This field can only be set on a limit with duration "1d", in a 4902 // billable 4903 // group; it is invalid on any other limit. If this field is not set, 4904 // it 4905 // defaults to 0, indicating that there is no free tier for this 4906 // service. 4907 // 4908 // Used by group-based quotas only. 4909 FreeTier int64 `json:"freeTier,omitempty,string"` 4910 4911 // MaxLimit: Maximum number of tokens that can be consumed during the 4912 // specified 4913 // duration. Client application developers can override the default 4914 // limit up 4915 // to this maximum. If specified, this value cannot be set to a value 4916 // less 4917 // than the default limit. If not specified, it is set to the default 4918 // limit. 4919 // 4920 // To allow clients to apply overrides with no upper bound, set this to 4921 // -1, 4922 // indicating unlimited maximum quota. 4923 // 4924 // Used by group-based quotas only. 4925 MaxLimit int64 `json:"maxLimit,omitempty,string"` 4926 4927 // Metric: The name of the metric this quota limit applies to. The quota 4928 // limits with 4929 // the same metric will be checked together during runtime. The metric 4930 // must be 4931 // defined within the service config. 4932 Metric string `json:"metric,omitempty"` 4933 4934 // Name: Name of the quota limit. 4935 // 4936 // The name must be provided, and it must be unique within the service. 4937 // The 4938 // name can only include alphanumeric characters as well as '-'. 4939 // 4940 // The maximum length of the limit name is 64 characters. 4941 Name string `json:"name,omitempty"` 4942 4943 // Unit: Specify the unit of the quota limit. It uses the same syntax 4944 // as 4945 // Metric.unit. The supported unit kinds are determined by the 4946 // quota 4947 // backend system. 4948 // 4949 // Here are some examples: 4950 // * "1/min/{project}" for quota per minute per project. 4951 // 4952 // Note: the order of unit components is insignificant. 4953 // The "1" at the beginning is required to follow the metric unit 4954 // syntax. 4955 Unit string `json:"unit,omitempty"` 4956 4957 // Values: Tiered limit values. You must specify this as a key:value 4958 // pair, with an 4959 // integer value that is the maximum number of requests allowed for 4960 // the 4961 // specified unit. Currently only STANDARD is supported. 4962 Values map[string]string `json:"values,omitempty"` 4963 4964 // ForceSendFields is a list of field names (e.g. "DefaultLimit") to 4965 // unconditionally include in API requests. By default, fields with 4966 // empty values are omitted from API requests. However, any non-pointer, 4967 // non-interface field appearing in ForceSendFields will be sent to the 4968 // server regardless of whether the field is empty or not. This may be 4969 // used to include empty fields in Patch requests. 4970 ForceSendFields []string `json:"-"` 4971 4972 // NullFields is a list of field names (e.g. "DefaultLimit") to include 4973 // in API requests with the JSON null value. By default, fields with 4974 // empty values are omitted from API requests. However, any field with 4975 // an empty value appearing in NullFields will be sent to the server as 4976 // null. It is an error if a field in this list has a non-empty value. 4977 // This may be used to include null fields in Patch requests. 4978 NullFields []string `json:"-"` 4979} 4980 4981func (s *QuotaLimit) MarshalJSON() ([]byte, error) { 4982 type NoMethod QuotaLimit 4983 raw := NoMethod(*s) 4984 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 4985} 4986 4987// Rollout: A rollout resource that defines how service configuration 4988// versions are pushed 4989// to control plane systems. Typically, you create a new version of 4990// the 4991// service config, and then create a Rollout to push the service config. 4992type Rollout struct { 4993 // CreateTime: Creation time of the rollout. Readonly. 4994 CreateTime string `json:"createTime,omitempty"` 4995 4996 // CreatedBy: The user who created the Rollout. Readonly. 4997 CreatedBy string `json:"createdBy,omitempty"` 4998 4999 // DeleteServiceStrategy: The strategy associated with a rollout to 5000 // delete a `ManagedService`. 5001 // Readonly. 5002 DeleteServiceStrategy *DeleteServiceStrategy `json:"deleteServiceStrategy,omitempty"` 5003 5004 // RolloutId: Optional. Unique identifier of this Rollout. Must be no 5005 // longer than 63 characters 5006 // and only lower case letters, digits, '.', '_' and '-' are 5007 // allowed. 5008 // 5009 // If not specified by client, the server will generate one. The 5010 // generated id 5011 // will have the form of <date><revision number>, where "date" is the 5012 // create 5013 // date in ISO 8601 format. "revision number" is a monotonically 5014 // increasing 5015 // positive number that is reset every day for each service. 5016 // An example of the generated rollout_id is '2016-02-16r1' 5017 RolloutId string `json:"rolloutId,omitempty"` 5018 5019 // ServiceName: The name of the service associated with this Rollout. 5020 ServiceName string `json:"serviceName,omitempty"` 5021 5022 // Status: The status of this rollout. Readonly. In case of a failed 5023 // rollout, 5024 // the system will automatically rollback to the current 5025 // Rollout 5026 // version. Readonly. 5027 // 5028 // Possible values: 5029 // "ROLLOUT_STATUS_UNSPECIFIED" - No status specified. 5030 // "IN_PROGRESS" - The Rollout is in progress. 5031 // "SUCCESS" - The Rollout has completed successfully. 5032 // "CANCELLED" - The Rollout has been cancelled. This can happen if 5033 // you have overlapping 5034 // Rollout pushes, and the previous ones will be cancelled. 5035 // "FAILED" - The Rollout has failed and the rollback attempt has 5036 // failed too. 5037 // "PENDING" - The Rollout has not started yet and is pending for 5038 // execution. 5039 // "FAILED_ROLLED_BACK" - The Rollout has failed and rolled back to 5040 // the previous successful 5041 // Rollout. 5042 Status string `json:"status,omitempty"` 5043 5044 // TrafficPercentStrategy: Google Service Control selects service 5045 // configurations based on 5046 // traffic percentage. 5047 TrafficPercentStrategy *TrafficPercentStrategy `json:"trafficPercentStrategy,omitempty"` 5048 5049 // ServerResponse contains the HTTP response code and headers from the 5050 // server. 5051 googleapi.ServerResponse `json:"-"` 5052 5053 // ForceSendFields is a list of field names (e.g. "CreateTime") to 5054 // unconditionally include in API requests. By default, fields with 5055 // empty values are omitted from API requests. However, any non-pointer, 5056 // non-interface field appearing in ForceSendFields will be sent to the 5057 // server regardless of whether the field is empty or not. This may be 5058 // used to include empty fields in Patch requests. 5059 ForceSendFields []string `json:"-"` 5060 5061 // NullFields is a list of field names (e.g. "CreateTime") to include in 5062 // API requests with the JSON null value. By default, fields with empty 5063 // values are omitted from API requests. However, any field with an 5064 // empty value appearing in NullFields will be sent to the server as 5065 // null. It is an error if a field in this list has a non-empty value. 5066 // This may be used to include null fields in Patch requests. 5067 NullFields []string `json:"-"` 5068} 5069 5070func (s *Rollout) MarshalJSON() ([]byte, error) { 5071 type NoMethod Rollout 5072 raw := NoMethod(*s) 5073 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5074} 5075 5076// Service: `Service` is the root object of Google service configuration 5077// schema. It 5078// describes basic information about a service, such as the name and 5079// the 5080// title, and delegates other aspects to sub-sections. Each sub-section 5081// is 5082// either a proto message or a repeated proto message that configures 5083// a 5084// specific aspect, such as auth. See each proto message definition for 5085// details. 5086// 5087// Example: 5088// 5089// type: google.api.Service 5090// config_version: 3 5091// name: calendar.googleapis.com 5092// title: Google Calendar API 5093// apis: 5094// - name: google.calendar.v3.Calendar 5095// authentication: 5096// providers: 5097// - id: google_calendar_auth 5098// jwks_uri: https://www.googleapis.com/oauth2/v1/certs 5099// issuer: https://securetoken.google.com 5100// rules: 5101// - selector: "*" 5102// requirements: 5103// provider_id: google_calendar_auth 5104type Service struct { 5105 // Apis: A list of API interfaces exported by this service. Only the 5106 // `name` field 5107 // of the google.protobuf.Api needs to be provided by the 5108 // configuration 5109 // author, as the remaining fields will be derived from the IDL during 5110 // the 5111 // normalization process. It is an error to specify an API interface 5112 // here 5113 // which cannot be resolved against the associated IDL files. 5114 Apis []*Api `json:"apis,omitempty"` 5115 5116 // Authentication: Auth configuration. 5117 Authentication *Authentication `json:"authentication,omitempty"` 5118 5119 // Backend: API backend configuration. 5120 Backend *Backend `json:"backend,omitempty"` 5121 5122 // Billing: Billing configuration. 5123 Billing *Billing `json:"billing,omitempty"` 5124 5125 // ConfigVersion: The semantic version of the service configuration. The 5126 // config version 5127 // affects the interpretation of the service configuration. For 5128 // example, 5129 // certain features are enabled by default for certain config 5130 // versions. 5131 // The latest config version is `3`. 5132 ConfigVersion int64 `json:"configVersion,omitempty"` 5133 5134 // Context: Context configuration. 5135 Context *Context `json:"context,omitempty"` 5136 5137 // Control: Configuration for the service control plane. 5138 Control *Control `json:"control,omitempty"` 5139 5140 // CustomError: Custom error configuration. 5141 CustomError *CustomError `json:"customError,omitempty"` 5142 5143 // Documentation: Additional API documentation. 5144 Documentation *Documentation `json:"documentation,omitempty"` 5145 5146 // Endpoints: Configuration for network endpoints. If this is empty, 5147 // then an endpoint 5148 // with the same name as the service is automatically generated to 5149 // service all 5150 // defined APIs. 5151 Endpoints []*Endpoint `json:"endpoints,omitempty"` 5152 5153 // Enums: A list of all enum types included in this API service. 5154 // Enums 5155 // referenced directly or indirectly by the `apis` are 5156 // automatically 5157 // included. Enums which are not referenced but shall be 5158 // included 5159 // should be listed here by name. Example: 5160 // 5161 // enums: 5162 // - name: google.someapi.v1.SomeEnum 5163 Enums []*Enum `json:"enums,omitempty"` 5164 5165 // Http: HTTP configuration. 5166 Http *Http `json:"http,omitempty"` 5167 5168 // Id: A unique ID for a specific instance of this message, typically 5169 // assigned 5170 // by the client for tracking purpose. Must be no longer than 63 5171 // characters 5172 // and only lower case letters, digits, '.', '_' and '-' are allowed. 5173 // If 5174 // empty, the server may choose to generate one instead. 5175 Id string `json:"id,omitempty"` 5176 5177 // Logging: Logging configuration. 5178 Logging *Logging `json:"logging,omitempty"` 5179 5180 // Logs: Defines the logs used by this service. 5181 Logs []*LogDescriptor `json:"logs,omitempty"` 5182 5183 // Metrics: Defines the metrics used by this service. 5184 Metrics []*MetricDescriptor `json:"metrics,omitempty"` 5185 5186 // MonitoredResources: Defines the monitored resources used by this 5187 // service. This is required 5188 // by the Service.monitoring and Service.logging configurations. 5189 MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"` 5190 5191 // Monitoring: Monitoring configuration. 5192 Monitoring *Monitoring `json:"monitoring,omitempty"` 5193 5194 // Name: The service name, which is a DNS-like logical identifier for 5195 // the 5196 // service, such as `calendar.googleapis.com`. The service 5197 // name 5198 // typically goes through DNS verification to make sure the owner 5199 // of the service also owns the DNS name. 5200 Name string `json:"name,omitempty"` 5201 5202 // ProducerProjectId: The Google project that owns this service. 5203 ProducerProjectId string `json:"producerProjectId,omitempty"` 5204 5205 // Quota: Quota configuration. 5206 Quota *Quota `json:"quota,omitempty"` 5207 5208 // SourceInfo: Output only. The source information for this 5209 // configuration if available. 5210 SourceInfo *SourceInfo `json:"sourceInfo,omitempty"` 5211 5212 // SystemParameters: System parameter configuration. 5213 SystemParameters *SystemParameters `json:"systemParameters,omitempty"` 5214 5215 // SystemTypes: A list of all proto message types included in this API 5216 // service. 5217 // It serves similar purpose as [google.api.Service.types], except 5218 // that 5219 // these types are not needed by user-defined APIs. Therefore, they will 5220 // not 5221 // show up in the generated discovery doc. This field should only be 5222 // used 5223 // to define system APIs in ESF. 5224 SystemTypes []*Type `json:"systemTypes,omitempty"` 5225 5226 // Title: The product title for this service. 5227 Title string `json:"title,omitempty"` 5228 5229 // Types: A list of all proto message types included in this API 5230 // service. 5231 // Types referenced directly or indirectly by the `apis` 5232 // are 5233 // automatically included. Messages which are not referenced but 5234 // shall be included, such as types used by the `google.protobuf.Any` 5235 // type, 5236 // should be listed here by name. Example: 5237 // 5238 // types: 5239 // - name: google.protobuf.Int32 5240 Types []*Type `json:"types,omitempty"` 5241 5242 // Usage: Configuration controlling usage of this service. 5243 Usage *Usage `json:"usage,omitempty"` 5244 5245 // ServerResponse contains the HTTP response code and headers from the 5246 // server. 5247 googleapi.ServerResponse `json:"-"` 5248 5249 // ForceSendFields is a list of field names (e.g. "Apis") to 5250 // unconditionally include in API requests. By default, fields with 5251 // empty values are omitted from API requests. However, any non-pointer, 5252 // non-interface field appearing in ForceSendFields will be sent to the 5253 // server regardless of whether the field is empty or not. This may be 5254 // used to include empty fields in Patch requests. 5255 ForceSendFields []string `json:"-"` 5256 5257 // NullFields is a list of field names (e.g. "Apis") to include in API 5258 // requests with the JSON null value. By default, fields with empty 5259 // values are omitted from API requests. However, any field with an 5260 // empty value appearing in NullFields will be sent to the server as 5261 // null. It is an error if a field in this list has a non-empty value. 5262 // This may be used to include null fields in Patch requests. 5263 NullFields []string `json:"-"` 5264} 5265 5266func (s *Service) MarshalJSON() ([]byte, error) { 5267 type NoMethod Service 5268 raw := NoMethod(*s) 5269 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5270} 5271 5272// ServiceIdentity: The per-product per-project service identity for a 5273// service. 5274// 5275// 5276// Use this field to configure per-product per-project service 5277// identity. 5278// Example of a service identity configuration. 5279// 5280// usage: 5281// service_identity: 5282// - service_account_parent: "projects/123456789" 5283// display_name: "Cloud XXX Service Agent" 5284// description: "Used as the identity of Cloud XXX to access 5285// resources" 5286type ServiceIdentity struct { 5287 // Description: Optional. A user-specified opaque description of the 5288 // service account. 5289 // Must be less than or equal to 256 UTF-8 bytes. 5290 Description string `json:"description,omitempty"` 5291 5292 // DisplayName: Optional. A user-specified name for the service 5293 // account. 5294 // Must be less than or equal to 100 UTF-8 bytes. 5295 DisplayName string `json:"displayName,omitempty"` 5296 5297 // ServiceAccountParent: A service account project that hosts the 5298 // service accounts. 5299 // 5300 // An example name would be: 5301 // `projects/123456789` 5302 ServiceAccountParent string `json:"serviceAccountParent,omitempty"` 5303 5304 // ForceSendFields is a list of field names (e.g. "Description") to 5305 // unconditionally include in API requests. By default, fields with 5306 // empty values are omitted from API requests. However, any non-pointer, 5307 // non-interface field appearing in ForceSendFields will be sent to the 5308 // server regardless of whether the field is empty or not. This may be 5309 // used to include empty fields in Patch requests. 5310 ForceSendFields []string `json:"-"` 5311 5312 // NullFields is a list of field names (e.g. "Description") to include 5313 // in API requests with the JSON null value. By default, fields with 5314 // empty values are omitted from API requests. However, any field with 5315 // an empty value appearing in NullFields will be sent to the server as 5316 // null. It is an error if a field in this list has a non-empty value. 5317 // This may be used to include null fields in Patch requests. 5318 NullFields []string `json:"-"` 5319} 5320 5321func (s *ServiceIdentity) MarshalJSON() ([]byte, error) { 5322 type NoMethod ServiceIdentity 5323 raw := NoMethod(*s) 5324 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5325} 5326 5327// SetIamPolicyRequest: Request message for `SetIamPolicy` method. 5328type SetIamPolicyRequest struct { 5329 // Policy: REQUIRED: The complete policy to be applied to the 5330 // `resource`. The size of 5331 // the policy is limited to a few 10s of KB. An empty policy is a 5332 // valid policy but certain Cloud Platform services (such as 5333 // Projects) 5334 // might reject them. 5335 Policy *Policy `json:"policy,omitempty"` 5336 5337 // UpdateMask: OPTIONAL: A FieldMask specifying which fields of the 5338 // policy to modify. Only 5339 // the fields in the mask will be modified. If no mask is provided, 5340 // the 5341 // following default mask is used: 5342 // paths: "bindings, etag" 5343 // This field is only used by Cloud IAM. 5344 UpdateMask string `json:"updateMask,omitempty"` 5345 5346 // ForceSendFields is a list of field names (e.g. "Policy") to 5347 // unconditionally include in API requests. By default, fields with 5348 // empty values are omitted from API requests. However, any non-pointer, 5349 // non-interface field appearing in ForceSendFields will be sent to the 5350 // server regardless of whether the field is empty or not. This may be 5351 // used to include empty fields in Patch requests. 5352 ForceSendFields []string `json:"-"` 5353 5354 // NullFields is a list of field names (e.g. "Policy") to include in API 5355 // requests with the JSON null value. By default, fields with empty 5356 // values are omitted from API requests. However, any field with an 5357 // empty value appearing in NullFields will be sent to the server as 5358 // null. It is an error if a field in this list has a non-empty value. 5359 // This may be used to include null fields in Patch requests. 5360 NullFields []string `json:"-"` 5361} 5362 5363func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) { 5364 type NoMethod SetIamPolicyRequest 5365 raw := NoMethod(*s) 5366 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5367} 5368 5369// SourceContext: `SourceContext` represents information about the 5370// source of a 5371// protobuf element, like the file in which it is defined. 5372type SourceContext struct { 5373 // FileName: The path-qualified name of the .proto file that contained 5374 // the associated 5375 // protobuf element. For example: 5376 // "google/protobuf/source_context.proto". 5377 FileName string `json:"fileName,omitempty"` 5378 5379 // ForceSendFields is a list of field names (e.g. "FileName") to 5380 // unconditionally include in API requests. By default, fields with 5381 // empty values are omitted from API requests. However, any non-pointer, 5382 // non-interface field appearing in ForceSendFields will be sent to the 5383 // server regardless of whether the field is empty or not. This may be 5384 // used to include empty fields in Patch requests. 5385 ForceSendFields []string `json:"-"` 5386 5387 // NullFields is a list of field names (e.g. "FileName") to include in 5388 // API requests with the JSON null value. By default, fields with empty 5389 // values are omitted from API requests. However, any field with an 5390 // empty value appearing in NullFields will be sent to the server as 5391 // null. It is an error if a field in this list has a non-empty value. 5392 // This may be used to include null fields in Patch requests. 5393 NullFields []string `json:"-"` 5394} 5395 5396func (s *SourceContext) MarshalJSON() ([]byte, error) { 5397 type NoMethod SourceContext 5398 raw := NoMethod(*s) 5399 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5400} 5401 5402// SourceInfo: Source information used to create a Service Config 5403type SourceInfo struct { 5404 // SourceFiles: All files used during config generation. 5405 SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"` 5406 5407 // ForceSendFields is a list of field names (e.g. "SourceFiles") to 5408 // unconditionally include in API requests. By default, fields with 5409 // empty values are omitted from API requests. However, any non-pointer, 5410 // non-interface field appearing in ForceSendFields will be sent to the 5411 // server regardless of whether the field is empty or not. This may be 5412 // used to include empty fields in Patch requests. 5413 ForceSendFields []string `json:"-"` 5414 5415 // NullFields is a list of field names (e.g. "SourceFiles") to include 5416 // in API requests with the JSON null value. By default, fields with 5417 // empty values are omitted from API requests. However, any field with 5418 // an empty value appearing in NullFields will be sent to the server as 5419 // null. It is an error if a field in this list has a non-empty value. 5420 // This may be used to include null fields in Patch requests. 5421 NullFields []string `json:"-"` 5422} 5423 5424func (s *SourceInfo) MarshalJSON() ([]byte, error) { 5425 type NoMethod SourceInfo 5426 raw := NoMethod(*s) 5427 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5428} 5429 5430// Status: The `Status` type defines a logical error model that is 5431// suitable for 5432// different programming environments, including REST APIs and RPC APIs. 5433// It is 5434// used by [gRPC](https://github.com/grpc). Each `Status` message 5435// contains 5436// three pieces of data: error code, error message, and error 5437// details. 5438// 5439// You can find out more about this error model and how to work with it 5440// in the 5441// [API Design Guide](https://cloud.google.com/apis/design/errors). 5442type Status struct { 5443 // Code: The status code, which should be an enum value of 5444 // google.rpc.Code. 5445 Code int64 `json:"code,omitempty"` 5446 5447 // Details: A list of messages that carry the error details. There is a 5448 // common set of 5449 // message types for APIs to use. 5450 Details []googleapi.RawMessage `json:"details,omitempty"` 5451 5452 // Message: A developer-facing error message, which should be in 5453 // English. Any 5454 // user-facing error message should be localized and sent in 5455 // the 5456 // google.rpc.Status.details field, or localized by the client. 5457 Message string `json:"message,omitempty"` 5458 5459 // ForceSendFields is a list of field names (e.g. "Code") to 5460 // unconditionally include in API requests. By default, fields with 5461 // empty values are omitted from API requests. However, any non-pointer, 5462 // non-interface field appearing in ForceSendFields will be sent to the 5463 // server regardless of whether the field is empty or not. This may be 5464 // used to include empty fields in Patch requests. 5465 ForceSendFields []string `json:"-"` 5466 5467 // NullFields is a list of field names (e.g. "Code") to include in API 5468 // requests with the JSON null value. By default, fields with empty 5469 // values are omitted from API requests. However, any field with an 5470 // empty value appearing in NullFields will be sent to the server as 5471 // null. It is an error if a field in this list has a non-empty value. 5472 // This may be used to include null fields in Patch requests. 5473 NullFields []string `json:"-"` 5474} 5475 5476func (s *Status) MarshalJSON() ([]byte, error) { 5477 type NoMethod Status 5478 raw := NoMethod(*s) 5479 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5480} 5481 5482// Step: Represents the status of one operation step. 5483type Step struct { 5484 // Description: The short description of the step. 5485 Description string `json:"description,omitempty"` 5486 5487 // Status: The status code. 5488 // 5489 // Possible values: 5490 // "STATUS_UNSPECIFIED" - Unspecifed code. 5491 // "DONE" - The operation or step has completed without errors. 5492 // "NOT_STARTED" - The operation or step has not started yet. 5493 // "IN_PROGRESS" - The operation or step is in progress. 5494 // "FAILED" - The operation or step has completed with errors. If the 5495 // operation is 5496 // rollbackable, the rollback completed with errors too. 5497 // "CANCELLED" - The operation or step has completed with 5498 // cancellation. 5499 Status string `json:"status,omitempty"` 5500 5501 // ForceSendFields is a list of field names (e.g. "Description") to 5502 // unconditionally include in API requests. By default, fields with 5503 // empty values are omitted from API requests. However, any non-pointer, 5504 // non-interface field appearing in ForceSendFields will be sent to the 5505 // server regardless of whether the field is empty or not. This may be 5506 // used to include empty fields in Patch requests. 5507 ForceSendFields []string `json:"-"` 5508 5509 // NullFields is a list of field names (e.g. "Description") to include 5510 // in API requests with the JSON null value. By default, fields with 5511 // empty values are omitted from API requests. However, any field with 5512 // an empty value appearing in NullFields will be sent to the server as 5513 // null. It is an error if a field in this list has a non-empty value. 5514 // This may be used to include null fields in Patch requests. 5515 NullFields []string `json:"-"` 5516} 5517 5518func (s *Step) MarshalJSON() ([]byte, error) { 5519 type NoMethod Step 5520 raw := NoMethod(*s) 5521 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5522} 5523 5524// SubmitConfigSourceRequest: Request message for SubmitConfigSource 5525// method. 5526type SubmitConfigSourceRequest struct { 5527 // ConfigSource: Required. The source configuration for the service. 5528 ConfigSource *ConfigSource `json:"configSource,omitempty"` 5529 5530 // ValidateOnly: Optional. If set, this will result in the generation of 5531 // a 5532 // `google.api.Service` configuration based on the `ConfigSource` 5533 // provided, 5534 // but the generated config and the sources will NOT be persisted. 5535 ValidateOnly bool `json:"validateOnly,omitempty"` 5536 5537 // ForceSendFields is a list of field names (e.g. "ConfigSource") to 5538 // unconditionally include in API requests. By default, fields with 5539 // empty values are omitted from API requests. However, any non-pointer, 5540 // non-interface field appearing in ForceSendFields will be sent to the 5541 // server regardless of whether the field is empty or not. This may be 5542 // used to include empty fields in Patch requests. 5543 ForceSendFields []string `json:"-"` 5544 5545 // NullFields is a list of field names (e.g. "ConfigSource") to include 5546 // in API requests with the JSON null value. By default, fields with 5547 // empty values are omitted from API requests. However, any field with 5548 // an empty value appearing in NullFields will be sent to the server as 5549 // null. It is an error if a field in this list has a non-empty value. 5550 // This may be used to include null fields in Patch requests. 5551 NullFields []string `json:"-"` 5552} 5553 5554func (s *SubmitConfigSourceRequest) MarshalJSON() ([]byte, error) { 5555 type NoMethod SubmitConfigSourceRequest 5556 raw := NoMethod(*s) 5557 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5558} 5559 5560// SubmitConfigSourceResponse: Response message for SubmitConfigSource 5561// method. 5562type SubmitConfigSourceResponse struct { 5563 // ServiceConfig: The generated service configuration. 5564 ServiceConfig *Service `json:"serviceConfig,omitempty"` 5565 5566 // ForceSendFields is a list of field names (e.g. "ServiceConfig") to 5567 // unconditionally include in API requests. By default, fields with 5568 // empty values are omitted from API requests. However, any non-pointer, 5569 // non-interface field appearing in ForceSendFields will be sent to the 5570 // server regardless of whether the field is empty or not. This may be 5571 // used to include empty fields in Patch requests. 5572 ForceSendFields []string `json:"-"` 5573 5574 // NullFields is a list of field names (e.g. "ServiceConfig") to include 5575 // in API requests with the JSON null value. By default, fields with 5576 // empty values are omitted from API requests. However, any field with 5577 // an empty value appearing in NullFields will be sent to the server as 5578 // null. It is an error if a field in this list has a non-empty value. 5579 // This may be used to include null fields in Patch requests. 5580 NullFields []string `json:"-"` 5581} 5582 5583func (s *SubmitConfigSourceResponse) MarshalJSON() ([]byte, error) { 5584 type NoMethod SubmitConfigSourceResponse 5585 raw := NoMethod(*s) 5586 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5587} 5588 5589// SystemParameter: Define a parameter's name and location. The 5590// parameter may be passed as either 5591// an HTTP header or a URL query parameter, and if both are passed the 5592// behavior 5593// is implementation-dependent. 5594type SystemParameter struct { 5595 // HttpHeader: Define the HTTP header name to use for the parameter. It 5596 // is case 5597 // insensitive. 5598 HttpHeader string `json:"httpHeader,omitempty"` 5599 5600 // Name: Define the name of the parameter, such as "api_key" . It is 5601 // case sensitive. 5602 Name string `json:"name,omitempty"` 5603 5604 // UrlQueryParameter: Define the URL query parameter name to use for the 5605 // parameter. It is case 5606 // sensitive. 5607 UrlQueryParameter string `json:"urlQueryParameter,omitempty"` 5608 5609 // ForceSendFields is a list of field names (e.g. "HttpHeader") to 5610 // unconditionally include in API requests. By default, fields with 5611 // empty values are omitted from API requests. However, any non-pointer, 5612 // non-interface field appearing in ForceSendFields will be sent to the 5613 // server regardless of whether the field is empty or not. This may be 5614 // used to include empty fields in Patch requests. 5615 ForceSendFields []string `json:"-"` 5616 5617 // NullFields is a list of field names (e.g. "HttpHeader") to include in 5618 // API requests with the JSON null value. By default, fields with empty 5619 // values are omitted from API requests. However, any field with an 5620 // empty value appearing in NullFields will be sent to the server as 5621 // null. It is an error if a field in this list has a non-empty value. 5622 // This may be used to include null fields in Patch requests. 5623 NullFields []string `json:"-"` 5624} 5625 5626func (s *SystemParameter) MarshalJSON() ([]byte, error) { 5627 type NoMethod SystemParameter 5628 raw := NoMethod(*s) 5629 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5630} 5631 5632// SystemParameterRule: Define a system parameter rule mapping system 5633// parameter definitions to 5634// methods. 5635type SystemParameterRule struct { 5636 // Parameters: Define parameters. Multiple names may be defined for a 5637 // parameter. 5638 // For a given method call, only one of them should be used. If 5639 // multiple 5640 // names are used the behavior is implementation-dependent. 5641 // If none of the specified names are present the behavior 5642 // is 5643 // parameter-dependent. 5644 Parameters []*SystemParameter `json:"parameters,omitempty"` 5645 5646 // Selector: Selects the methods to which this rule applies. Use '*' to 5647 // indicate all 5648 // methods in all APIs. 5649 // 5650 // Refer to selector for syntax details. 5651 Selector string `json:"selector,omitempty"` 5652 5653 // ForceSendFields is a list of field names (e.g. "Parameters") to 5654 // unconditionally include in API requests. By default, fields with 5655 // empty values are omitted from API requests. However, any non-pointer, 5656 // non-interface field appearing in ForceSendFields will be sent to the 5657 // server regardless of whether the field is empty or not. This may be 5658 // used to include empty fields in Patch requests. 5659 ForceSendFields []string `json:"-"` 5660 5661 // NullFields is a list of field names (e.g. "Parameters") to include in 5662 // API requests with the JSON null value. By default, fields with empty 5663 // values are omitted from API requests. However, any field with an 5664 // empty value appearing in NullFields will be sent to the server as 5665 // null. It is an error if a field in this list has a non-empty value. 5666 // This may be used to include null fields in Patch requests. 5667 NullFields []string `json:"-"` 5668} 5669 5670func (s *SystemParameterRule) MarshalJSON() ([]byte, error) { 5671 type NoMethod SystemParameterRule 5672 raw := NoMethod(*s) 5673 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5674} 5675 5676// SystemParameters: ### System parameter configuration 5677// 5678// A system parameter is a special kind of parameter defined by the 5679// API 5680// system, not by an individual API. It is typically mapped to an HTTP 5681// header 5682// and/or a URL query parameter. This configuration specifies which 5683// methods 5684// change the names of the system parameters. 5685type SystemParameters struct { 5686 // Rules: Define system parameters. 5687 // 5688 // The parameters defined here will override the default 5689 // parameters 5690 // implemented by the system. If this field is missing from the 5691 // service 5692 // config, default system parameters will be used. Default system 5693 // parameters 5694 // and names is implementation-dependent. 5695 // 5696 // Example: define api key for all methods 5697 // 5698 // system_parameters 5699 // rules: 5700 // - selector: "*" 5701 // parameters: 5702 // - name: api_key 5703 // url_query_parameter: api_key 5704 // 5705 // 5706 // Example: define 2 api key names for a specific method. 5707 // 5708 // system_parameters 5709 // rules: 5710 // - selector: "/ListShelves" 5711 // parameters: 5712 // - name: api_key 5713 // http_header: Api-Key1 5714 // - name: api_key 5715 // http_header: Api-Key2 5716 // 5717 // **NOTE:** All service configuration rules follow "last one wins" 5718 // order. 5719 Rules []*SystemParameterRule `json:"rules,omitempty"` 5720 5721 // ForceSendFields is a list of field names (e.g. "Rules") to 5722 // unconditionally include in API requests. By default, fields with 5723 // empty values are omitted from API requests. However, any non-pointer, 5724 // non-interface field appearing in ForceSendFields will be sent to the 5725 // server regardless of whether the field is empty or not. This may be 5726 // used to include empty fields in Patch requests. 5727 ForceSendFields []string `json:"-"` 5728 5729 // NullFields is a list of field names (e.g. "Rules") to include in API 5730 // requests with the JSON null value. By default, fields with empty 5731 // values are omitted from API requests. However, any field with an 5732 // empty value appearing in NullFields will be sent to the server as 5733 // null. It is an error if a field in this list has a non-empty value. 5734 // This may be used to include null fields in Patch requests. 5735 NullFields []string `json:"-"` 5736} 5737 5738func (s *SystemParameters) MarshalJSON() ([]byte, error) { 5739 type NoMethod SystemParameters 5740 raw := NoMethod(*s) 5741 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5742} 5743 5744// TestIamPermissionsRequest: Request message for `TestIamPermissions` 5745// method. 5746type TestIamPermissionsRequest struct { 5747 // Permissions: The set of permissions to check for the `resource`. 5748 // Permissions with 5749 // wildcards (such as '*' or 'storage.*') are not allowed. For 5750 // more 5751 // information see 5752 // [IAM 5753 // Overview](https://cloud.google.com/iam/docs/overview#permissions). 5754 Permissions []string `json:"permissions,omitempty"` 5755 5756 // ForceSendFields is a list of field names (e.g. "Permissions") to 5757 // unconditionally include in API requests. By default, fields with 5758 // empty values are omitted from API requests. However, any non-pointer, 5759 // non-interface field appearing in ForceSendFields will be sent to the 5760 // server regardless of whether the field is empty or not. This may be 5761 // used to include empty fields in Patch requests. 5762 ForceSendFields []string `json:"-"` 5763 5764 // NullFields is a list of field names (e.g. "Permissions") to include 5765 // in API requests with the JSON null value. By default, fields with 5766 // empty values are omitted from API requests. However, any field with 5767 // an empty value appearing in NullFields will be sent to the server as 5768 // null. It is an error if a field in this list has a non-empty value. 5769 // This may be used to include null fields in Patch requests. 5770 NullFields []string `json:"-"` 5771} 5772 5773func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) { 5774 type NoMethod TestIamPermissionsRequest 5775 raw := NoMethod(*s) 5776 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5777} 5778 5779// TestIamPermissionsResponse: Response message for `TestIamPermissions` 5780// method. 5781type TestIamPermissionsResponse struct { 5782 // Permissions: A subset of `TestPermissionsRequest.permissions` that 5783 // the caller is 5784 // allowed. 5785 Permissions []string `json:"permissions,omitempty"` 5786 5787 // ServerResponse contains the HTTP response code and headers from the 5788 // server. 5789 googleapi.ServerResponse `json:"-"` 5790 5791 // ForceSendFields is a list of field names (e.g. "Permissions") to 5792 // unconditionally include in API requests. By default, fields with 5793 // empty values are omitted from API requests. However, any non-pointer, 5794 // non-interface field appearing in ForceSendFields will be sent to the 5795 // server regardless of whether the field is empty or not. This may be 5796 // used to include empty fields in Patch requests. 5797 ForceSendFields []string `json:"-"` 5798 5799 // NullFields is a list of field names (e.g. "Permissions") to include 5800 // in API requests with the JSON null value. By default, fields with 5801 // empty values are omitted from API requests. However, any field with 5802 // an empty value appearing in NullFields will be sent to the server as 5803 // null. It is an error if a field in this list has a non-empty value. 5804 // This may be used to include null fields in Patch requests. 5805 NullFields []string `json:"-"` 5806} 5807 5808func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { 5809 type NoMethod TestIamPermissionsResponse 5810 raw := NoMethod(*s) 5811 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5812} 5813 5814// TrafficPercentStrategy: Strategy that specifies how clients of Google 5815// Service Controller want to 5816// send traffic to use different config versions. This is generally 5817// used by API proxy to split traffic based on your configured 5818// percentage for 5819// each config version. 5820// 5821// One example of how to gradually rollout a new service configuration 5822// using 5823// this 5824// strategy: 5825// Day 1 5826// 5827// Rollout { 5828// id: "example.googleapis.com/rollout_20160206" 5829// traffic_percent_strategy { 5830// percentages: { 5831// "example.googleapis.com/20160201": 70.00 5832// "example.googleapis.com/20160206": 30.00 5833// } 5834// } 5835// } 5836// 5837// Day 2 5838// 5839// Rollout { 5840// id: "example.googleapis.com/rollout_20160207" 5841// traffic_percent_strategy: { 5842// percentages: { 5843// "example.googleapis.com/20160206": 100.00 5844// } 5845// } 5846// } 5847type TrafficPercentStrategy struct { 5848 // Percentages: Maps service configuration IDs to their corresponding 5849 // traffic percentage. 5850 // Key is the service configuration ID, Value is the traffic 5851 // percentage 5852 // which must be greater than 0.0 and the sum must equal to 100.0. 5853 Percentages map[string]float64 `json:"percentages,omitempty"` 5854 5855 // ForceSendFields is a list of field names (e.g. "Percentages") to 5856 // unconditionally include in API requests. By default, fields with 5857 // empty values are omitted from API requests. However, any non-pointer, 5858 // non-interface field appearing in ForceSendFields will be sent to the 5859 // server regardless of whether the field is empty or not. This may be 5860 // used to include empty fields in Patch requests. 5861 ForceSendFields []string `json:"-"` 5862 5863 // NullFields is a list of field names (e.g. "Percentages") to include 5864 // in API requests with the JSON null value. By default, fields with 5865 // empty values are omitted from API requests. However, any field with 5866 // an empty value appearing in NullFields will be sent to the server as 5867 // null. It is an error if a field in this list has a non-empty value. 5868 // This may be used to include null fields in Patch requests. 5869 NullFields []string `json:"-"` 5870} 5871 5872func (s *TrafficPercentStrategy) MarshalJSON() ([]byte, error) { 5873 type NoMethod TrafficPercentStrategy 5874 raw := NoMethod(*s) 5875 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5876} 5877 5878// Type: A protocol buffer message type. 5879type Type struct { 5880 // Fields: The list of fields. 5881 Fields []*Field `json:"fields,omitempty"` 5882 5883 // Name: The fully qualified message name. 5884 Name string `json:"name,omitempty"` 5885 5886 // Oneofs: The list of types appearing in `oneof` definitions in this 5887 // type. 5888 Oneofs []string `json:"oneofs,omitempty"` 5889 5890 // Options: The protocol buffer options. 5891 Options []*Option `json:"options,omitempty"` 5892 5893 // SourceContext: The source context. 5894 SourceContext *SourceContext `json:"sourceContext,omitempty"` 5895 5896 // Syntax: The source syntax. 5897 // 5898 // Possible values: 5899 // "SYNTAX_PROTO2" - Syntax `proto2`. 5900 // "SYNTAX_PROTO3" - Syntax `proto3`. 5901 Syntax string `json:"syntax,omitempty"` 5902 5903 // ForceSendFields is a list of field names (e.g. "Fields") to 5904 // unconditionally include in API requests. By default, fields with 5905 // empty values are omitted from API requests. However, any non-pointer, 5906 // non-interface field appearing in ForceSendFields will be sent to the 5907 // server regardless of whether the field is empty or not. This may be 5908 // used to include empty fields in Patch requests. 5909 ForceSendFields []string `json:"-"` 5910 5911 // NullFields is a list of field names (e.g. "Fields") to include in API 5912 // requests with the JSON null value. By default, fields with empty 5913 // values are omitted from API requests. However, any field with an 5914 // empty value appearing in NullFields will be sent to the server as 5915 // null. It is an error if a field in this list has a non-empty value. 5916 // This may be used to include null fields in Patch requests. 5917 NullFields []string `json:"-"` 5918} 5919 5920func (s *Type) MarshalJSON() ([]byte, error) { 5921 type NoMethod Type 5922 raw := NoMethod(*s) 5923 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5924} 5925 5926// UndeleteServiceResponse: Response message for UndeleteService method. 5927type UndeleteServiceResponse struct { 5928 // Service: Revived service resource. 5929 Service *ManagedService `json:"service,omitempty"` 5930 5931 // ForceSendFields is a list of field names (e.g. "Service") to 5932 // unconditionally include in API requests. By default, fields with 5933 // empty values are omitted from API requests. However, any non-pointer, 5934 // non-interface field appearing in ForceSendFields will be sent to the 5935 // server regardless of whether the field is empty or not. This may be 5936 // used to include empty fields in Patch requests. 5937 ForceSendFields []string `json:"-"` 5938 5939 // NullFields is a list of field names (e.g. "Service") to include in 5940 // API requests with the JSON null value. By default, fields with empty 5941 // values are omitted from API requests. However, any field with an 5942 // empty value appearing in NullFields will be sent to the server as 5943 // null. It is an error if a field in this list has a non-empty value. 5944 // This may be used to include null fields in Patch requests. 5945 NullFields []string `json:"-"` 5946} 5947 5948func (s *UndeleteServiceResponse) MarshalJSON() ([]byte, error) { 5949 type NoMethod UndeleteServiceResponse 5950 raw := NoMethod(*s) 5951 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 5952} 5953 5954// Usage: Configuration controlling usage of a service. 5955type Usage struct { 5956 // ProducerNotificationChannel: The full resource name of a channel used 5957 // for sending notifications to the 5958 // service producer. 5959 // 5960 // Google Service Management currently only supports 5961 // [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a 5962 // notification 5963 // channel. To use Google Cloud Pub/Sub as the channel, this must be the 5964 // name 5965 // of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name 5966 // format 5967 // documented in https://cloud.google.com/pubsub/docs/overview. 5968 ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"` 5969 5970 // Requirements: Requirements that must be satisfied before a consumer 5971 // project can use the 5972 // service. Each requirement is of the form 5973 // <service.name>/<requirement-id>; 5974 // for example 'serviceusage.googleapis.com/billing-enabled'. 5975 Requirements []string `json:"requirements,omitempty"` 5976 5977 // Rules: A list of usage rules that apply to individual API 5978 // methods. 5979 // 5980 // **NOTE:** All service configuration rules follow "last one wins" 5981 // order. 5982 Rules []*UsageRule `json:"rules,omitempty"` 5983 5984 // ServiceIdentity: The configuration of a per-product per-project 5985 // service identity. 5986 ServiceIdentity *ServiceIdentity `json:"serviceIdentity,omitempty"` 5987 5988 // ForceSendFields is a list of field names (e.g. 5989 // "ProducerNotificationChannel") to unconditionally include in API 5990 // requests. By default, fields with empty values are omitted from API 5991 // requests. However, any non-pointer, non-interface field appearing in 5992 // ForceSendFields will be sent to the server regardless of whether the 5993 // field is empty or not. This may be used to include empty fields in 5994 // Patch requests. 5995 ForceSendFields []string `json:"-"` 5996 5997 // NullFields is a list of field names (e.g. 5998 // "ProducerNotificationChannel") to include in API requests with the 5999 // JSON null value. By default, fields with empty values are omitted 6000 // from API requests. However, any field with an empty value appearing 6001 // in NullFields will be sent to the server as null. It is an error if a 6002 // field in this list has a non-empty value. This may be used to include 6003 // null fields in Patch requests. 6004 NullFields []string `json:"-"` 6005} 6006 6007func (s *Usage) MarshalJSON() ([]byte, error) { 6008 type NoMethod Usage 6009 raw := NoMethod(*s) 6010 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 6011} 6012 6013// UsageRule: Usage configuration rules for the service. 6014// 6015// NOTE: Under development. 6016// 6017// 6018// Use this rule to configure unregistered calls for the service. 6019// Unregistered 6020// calls are calls that do not contain consumer project 6021// identity. 6022// (Example: calls that do not contain an API key). 6023// By default, API methods do not allow unregistered calls, and each 6024// method call 6025// must be identified by a consumer project identity. Use this rule 6026// to 6027// allow/disallow unregistered calls. 6028// 6029// Example of an API that wants to allow unregistered calls for entire 6030// service. 6031// 6032// usage: 6033// rules: 6034// - selector: "*" 6035// allow_unregistered_calls: true 6036// 6037// Example of a method that wants to allow unregistered calls. 6038// 6039// usage: 6040// rules: 6041// - selector: 6042// "google.example.library.v1.LibraryService.CreateBook" 6043// allow_unregistered_calls: true 6044type UsageRule struct { 6045 // AllowUnregisteredCalls: If true, the selected method allows 6046 // unregistered calls, e.g. calls 6047 // that don't identify any user or application. 6048 AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"` 6049 6050 // Selector: Selects the methods to which this rule applies. Use '*' to 6051 // indicate all 6052 // methods in all APIs. 6053 // 6054 // Refer to selector for syntax details. 6055 Selector string `json:"selector,omitempty"` 6056 6057 // SkipServiceControl: If true, the selected method should skip service 6058 // control and the control 6059 // plane features, such as quota and billing, will not be 6060 // available. 6061 // This flag is used by Google Cloud Endpoints to bypass checks for 6062 // internal 6063 // methods, such as service health check methods. 6064 SkipServiceControl bool `json:"skipServiceControl,omitempty"` 6065 6066 // ForceSendFields is a list of field names (e.g. 6067 // "AllowUnregisteredCalls") to unconditionally include in API requests. 6068 // By default, fields with empty values are omitted from API requests. 6069 // However, any non-pointer, non-interface field appearing in 6070 // ForceSendFields will be sent to the server regardless of whether the 6071 // field is empty or not. This may be used to include empty fields in 6072 // Patch requests. 6073 ForceSendFields []string `json:"-"` 6074 6075 // NullFields is a list of field names (e.g. "AllowUnregisteredCalls") 6076 // to include in API requests with the JSON null value. By default, 6077 // fields with empty values are omitted from API requests. However, any 6078 // field with an empty value appearing in NullFields will be sent to the 6079 // server as null. It is an error if a field in this list has a 6080 // non-empty value. This may be used to include null fields in Patch 6081 // requests. 6082 NullFields []string `json:"-"` 6083} 6084 6085func (s *UsageRule) MarshalJSON() ([]byte, error) { 6086 type NoMethod UsageRule 6087 raw := NoMethod(*s) 6088 return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) 6089} 6090 6091// method id "servicemanagement.operations.get": 6092 6093type OperationsGetCall struct { 6094 s *APIService 6095 name string 6096 urlParams_ gensupport.URLParams 6097 ifNoneMatch_ string 6098 ctx_ context.Context 6099 header_ http.Header 6100} 6101 6102// Get: Gets the latest state of a long-running operation. Clients can 6103// use this 6104// method to poll the operation result at intervals as recommended by 6105// the API 6106// service. 6107func (r *OperationsService) Get(name string) *OperationsGetCall { 6108 c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6109 c.name = name 6110 return c 6111} 6112 6113// Fields allows partial responses to be retrieved. See 6114// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6115// for more information. 6116func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { 6117 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6118 return c 6119} 6120 6121// IfNoneMatch sets the optional parameter which makes the operation 6122// fail if the object's ETag matches the given value. This is useful for 6123// getting updates only after the object has changed since the last 6124// request. Use googleapi.IsNotModified to check whether the response 6125// error from Do is the result of In-None-Match. 6126func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { 6127 c.ifNoneMatch_ = entityTag 6128 return c 6129} 6130 6131// Context sets the context to be used in this call's Do method. Any 6132// pending HTTP request will be aborted if the provided context is 6133// canceled. 6134func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { 6135 c.ctx_ = ctx 6136 return c 6137} 6138 6139// Header returns an http.Header that can be modified by the caller to 6140// add HTTP headers to the request. 6141func (c *OperationsGetCall) Header() http.Header { 6142 if c.header_ == nil { 6143 c.header_ = make(http.Header) 6144 } 6145 return c.header_ 6146} 6147 6148func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { 6149 reqHeaders := make(http.Header) 6150 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6151 for k, v := range c.header_ { 6152 reqHeaders[k] = v 6153 } 6154 reqHeaders.Set("User-Agent", c.s.userAgent()) 6155 if c.ifNoneMatch_ != "" { 6156 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 6157 } 6158 var body io.Reader = nil 6159 c.urlParams_.Set("alt", alt) 6160 c.urlParams_.Set("prettyPrint", "false") 6161 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") 6162 urls += "?" + c.urlParams_.Encode() 6163 req, err := http.NewRequest("GET", urls, body) 6164 if err != nil { 6165 return nil, err 6166 } 6167 req.Header = reqHeaders 6168 googleapi.Expand(req.URL, map[string]string{ 6169 "name": c.name, 6170 }) 6171 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6172} 6173 6174// Do executes the "servicemanagement.operations.get" call. 6175// Exactly one of *Operation or error will be non-nil. Any non-2xx 6176// status code is an error. Response headers are in either 6177// *Operation.ServerResponse.Header or (if a response was returned at 6178// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6179// to check whether the returned error was because 6180// http.StatusNotModified was returned. 6181func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6182 gensupport.SetOptions(c.urlParams_, opts...) 6183 res, err := c.doRequest("json") 6184 if res != nil && res.StatusCode == http.StatusNotModified { 6185 if res.Body != nil { 6186 res.Body.Close() 6187 } 6188 return nil, &googleapi.Error{ 6189 Code: res.StatusCode, 6190 Header: res.Header, 6191 } 6192 } 6193 if err != nil { 6194 return nil, err 6195 } 6196 defer googleapi.CloseBody(res) 6197 if err := googleapi.CheckResponse(res); err != nil { 6198 return nil, err 6199 } 6200 ret := &Operation{ 6201 ServerResponse: googleapi.ServerResponse{ 6202 Header: res.Header, 6203 HTTPStatusCode: res.StatusCode, 6204 }, 6205 } 6206 target := &ret 6207 if err := gensupport.DecodeResponse(target, res); err != nil { 6208 return nil, err 6209 } 6210 return ret, nil 6211 // { 6212 // "description": "Gets the latest state of a long-running operation. Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", 6213 // "flatPath": "v1/operations/{operationsId}", 6214 // "httpMethod": "GET", 6215 // "id": "servicemanagement.operations.get", 6216 // "parameterOrder": [ 6217 // "name" 6218 // ], 6219 // "parameters": { 6220 // "name": { 6221 // "description": "The name of the operation resource.", 6222 // "location": "path", 6223 // "pattern": "^operations/.*$", 6224 // "required": true, 6225 // "type": "string" 6226 // } 6227 // }, 6228 // "path": "v1/{+name}", 6229 // "response": { 6230 // "$ref": "Operation" 6231 // }, 6232 // "scopes": [ 6233 // "https://www.googleapis.com/auth/cloud-platform", 6234 // "https://www.googleapis.com/auth/service.management" 6235 // ] 6236 // } 6237 6238} 6239 6240// method id "servicemanagement.operations.list": 6241 6242type OperationsListCall struct { 6243 s *APIService 6244 urlParams_ gensupport.URLParams 6245 ifNoneMatch_ string 6246 ctx_ context.Context 6247 header_ http.Header 6248} 6249 6250// List: Lists service operations that match the specified filter in the 6251// request. 6252func (r *OperationsService) List() *OperationsListCall { 6253 c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6254 return c 6255} 6256 6257// Filter sets the optional parameter "filter": A string for filtering 6258// Operations. 6259// The following filter fields are supported: 6260// 6261// * serviceName: Required. Only `=` operator is allowed. 6262// * startTime: The time this job was started, in ISO 8601 6263// format. 6264// Allowed operators are `>=`, `>`, `<=`, and `<`. 6265// * status: Can be `done`, `in_progress`, or `failed`. Allowed 6266// operators are `=`, and `!=`. 6267// 6268// Filter expression supports conjunction (AND) and disjunction (OR) 6269// logical operators. However, the serviceName restriction must be at 6270// the 6271// top-level and can only be combined with other restrictions via the 6272// AND 6273// logical operator. 6274// 6275// Examples: 6276// 6277// * `serviceName={some-service}.googleapis.com` 6278// * `serviceName={some-service}.googleapis.com AND 6279// startTime>="2017-02-01" 6280// * `serviceName={some-service}.googleapis.com AND status=done` 6281// * `serviceName={some-service}.googleapis.com AND (status=done OR 6282// startTime>="2017-02-01")` 6283func (c *OperationsListCall) Filter(filter string) *OperationsListCall { 6284 c.urlParams_.Set("filter", filter) 6285 return c 6286} 6287 6288// Name sets the optional parameter "name": Not used. 6289func (c *OperationsListCall) Name(name string) *OperationsListCall { 6290 c.urlParams_.Set("name", name) 6291 return c 6292} 6293 6294// PageSize sets the optional parameter "pageSize": The maximum number 6295// of operations to return. If unspecified, defaults to 6296// 50. The maximum value is 100. 6297func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall { 6298 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 6299 return c 6300} 6301 6302// PageToken sets the optional parameter "pageToken": The standard list 6303// page token. 6304func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall { 6305 c.urlParams_.Set("pageToken", pageToken) 6306 return c 6307} 6308 6309// Fields allows partial responses to be retrieved. See 6310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6311// for more information. 6312func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall { 6313 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6314 return c 6315} 6316 6317// IfNoneMatch sets the optional parameter which makes the operation 6318// fail if the object's ETag matches the given value. This is useful for 6319// getting updates only after the object has changed since the last 6320// request. Use googleapi.IsNotModified to check whether the response 6321// error from Do is the result of In-None-Match. 6322func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall { 6323 c.ifNoneMatch_ = entityTag 6324 return c 6325} 6326 6327// Context sets the context to be used in this call's Do method. Any 6328// pending HTTP request will be aborted if the provided context is 6329// canceled. 6330func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall { 6331 c.ctx_ = ctx 6332 return c 6333} 6334 6335// Header returns an http.Header that can be modified by the caller to 6336// add HTTP headers to the request. 6337func (c *OperationsListCall) Header() http.Header { 6338 if c.header_ == nil { 6339 c.header_ = make(http.Header) 6340 } 6341 return c.header_ 6342} 6343 6344func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) { 6345 reqHeaders := make(http.Header) 6346 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6347 for k, v := range c.header_ { 6348 reqHeaders[k] = v 6349 } 6350 reqHeaders.Set("User-Agent", c.s.userAgent()) 6351 if c.ifNoneMatch_ != "" { 6352 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 6353 } 6354 var body io.Reader = nil 6355 c.urlParams_.Set("alt", alt) 6356 c.urlParams_.Set("prettyPrint", "false") 6357 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/operations") 6358 urls += "?" + c.urlParams_.Encode() 6359 req, err := http.NewRequest("GET", urls, body) 6360 if err != nil { 6361 return nil, err 6362 } 6363 req.Header = reqHeaders 6364 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6365} 6366 6367// Do executes the "servicemanagement.operations.list" call. 6368// Exactly one of *ListOperationsResponse or error will be non-nil. Any 6369// non-2xx status code is an error. Response headers are in either 6370// *ListOperationsResponse.ServerResponse.Header or (if a response was 6371// returned at all) in error.(*googleapi.Error).Header. Use 6372// googleapi.IsNotModified to check whether the returned error was 6373// because http.StatusNotModified was returned. 6374func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) { 6375 gensupport.SetOptions(c.urlParams_, opts...) 6376 res, err := c.doRequest("json") 6377 if res != nil && res.StatusCode == http.StatusNotModified { 6378 if res.Body != nil { 6379 res.Body.Close() 6380 } 6381 return nil, &googleapi.Error{ 6382 Code: res.StatusCode, 6383 Header: res.Header, 6384 } 6385 } 6386 if err != nil { 6387 return nil, err 6388 } 6389 defer googleapi.CloseBody(res) 6390 if err := googleapi.CheckResponse(res); err != nil { 6391 return nil, err 6392 } 6393 ret := &ListOperationsResponse{ 6394 ServerResponse: googleapi.ServerResponse{ 6395 Header: res.Header, 6396 HTTPStatusCode: res.StatusCode, 6397 }, 6398 } 6399 target := &ret 6400 if err := gensupport.DecodeResponse(target, res); err != nil { 6401 return nil, err 6402 } 6403 return ret, nil 6404 // { 6405 // "description": "Lists service operations that match the specified filter in the request.", 6406 // "flatPath": "v1/operations", 6407 // "httpMethod": "GET", 6408 // "id": "servicemanagement.operations.list", 6409 // "parameterOrder": [], 6410 // "parameters": { 6411 // "filter": { 6412 // "description": "A string for filtering Operations.\n The following filter fields are supported\u0026#58;\n\n * serviceName\u0026#58; Required. Only `=` operator is allowed.\n * startTime\u0026#58; The time this job was started, in ISO 8601 format.\n Allowed operators are `\u003e=`, `\u003e`, `\u003c=`, and `\u003c`.\n * status\u0026#58; Can be `done`, `in_progress`, or `failed`. Allowed\n operators are `=`, and `!=`.\n\n Filter expression supports conjunction (AND) and disjunction (OR)\n logical operators. However, the serviceName restriction must be at the\n top-level and can only be combined with other restrictions via the AND\n logical operator.\n\n Examples\u0026#58;\n\n * `serviceName={some-service}.googleapis.com`\n * `serviceName={some-service}.googleapis.com AND startTime\u003e=\"2017-02-01\"`\n * `serviceName={some-service}.googleapis.com AND status=done`\n * `serviceName={some-service}.googleapis.com AND (status=done OR startTime\u003e=\"2017-02-01\")`", 6413 // "location": "query", 6414 // "type": "string" 6415 // }, 6416 // "name": { 6417 // "description": "Not used.", 6418 // "location": "query", 6419 // "type": "string" 6420 // }, 6421 // "pageSize": { 6422 // "description": "The maximum number of operations to return. If unspecified, defaults to\n50. The maximum value is 100.", 6423 // "format": "int32", 6424 // "location": "query", 6425 // "type": "integer" 6426 // }, 6427 // "pageToken": { 6428 // "description": "The standard list page token.", 6429 // "location": "query", 6430 // "type": "string" 6431 // } 6432 // }, 6433 // "path": "v1/operations", 6434 // "response": { 6435 // "$ref": "ListOperationsResponse" 6436 // }, 6437 // "scopes": [ 6438 // "https://www.googleapis.com/auth/cloud-platform", 6439 // "https://www.googleapis.com/auth/service.management" 6440 // ] 6441 // } 6442 6443} 6444 6445// Pages invokes f for each page of results. 6446// A non-nil error returned from f will halt the iteration. 6447// The provided context supersedes any context provided to the Context method. 6448func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error { 6449 c.ctx_ = ctx 6450 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 6451 for { 6452 x, err := c.Do() 6453 if err != nil { 6454 return err 6455 } 6456 if err := f(x); err != nil { 6457 return err 6458 } 6459 if x.NextPageToken == "" { 6460 return nil 6461 } 6462 c.PageToken(x.NextPageToken) 6463 } 6464} 6465 6466// method id "servicemanagement.services.create": 6467 6468type ServicesCreateCall struct { 6469 s *APIService 6470 managedservice *ManagedService 6471 urlParams_ gensupport.URLParams 6472 ctx_ context.Context 6473 header_ http.Header 6474} 6475 6476// Create: Creates a new managed service. 6477// Please note one producer project can own no more than 20 6478// services. 6479// 6480// Operation<response: ManagedService> 6481func (r *ServicesService) Create(managedservice *ManagedService) *ServicesCreateCall { 6482 c := &ServicesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6483 c.managedservice = managedservice 6484 return c 6485} 6486 6487// Fields allows partial responses to be retrieved. See 6488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6489// for more information. 6490func (c *ServicesCreateCall) Fields(s ...googleapi.Field) *ServicesCreateCall { 6491 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6492 return c 6493} 6494 6495// Context sets the context to be used in this call's Do method. Any 6496// pending HTTP request will be aborted if the provided context is 6497// canceled. 6498func (c *ServicesCreateCall) Context(ctx context.Context) *ServicesCreateCall { 6499 c.ctx_ = ctx 6500 return c 6501} 6502 6503// Header returns an http.Header that can be modified by the caller to 6504// add HTTP headers to the request. 6505func (c *ServicesCreateCall) Header() http.Header { 6506 if c.header_ == nil { 6507 c.header_ = make(http.Header) 6508 } 6509 return c.header_ 6510} 6511 6512func (c *ServicesCreateCall) doRequest(alt string) (*http.Response, error) { 6513 reqHeaders := make(http.Header) 6514 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6515 for k, v := range c.header_ { 6516 reqHeaders[k] = v 6517 } 6518 reqHeaders.Set("User-Agent", c.s.userAgent()) 6519 var body io.Reader = nil 6520 body, err := googleapi.WithoutDataWrapper.JSONReader(c.managedservice) 6521 if err != nil { 6522 return nil, err 6523 } 6524 reqHeaders.Set("Content-Type", "application/json") 6525 c.urlParams_.Set("alt", alt) 6526 c.urlParams_.Set("prettyPrint", "false") 6527 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services") 6528 urls += "?" + c.urlParams_.Encode() 6529 req, err := http.NewRequest("POST", urls, body) 6530 if err != nil { 6531 return nil, err 6532 } 6533 req.Header = reqHeaders 6534 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6535} 6536 6537// Do executes the "servicemanagement.services.create" call. 6538// Exactly one of *Operation or error will be non-nil. Any non-2xx 6539// status code is an error. Response headers are in either 6540// *Operation.ServerResponse.Header or (if a response was returned at 6541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6542// to check whether the returned error was because 6543// http.StatusNotModified was returned. 6544func (c *ServicesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6545 gensupport.SetOptions(c.urlParams_, opts...) 6546 res, err := c.doRequest("json") 6547 if res != nil && res.StatusCode == http.StatusNotModified { 6548 if res.Body != nil { 6549 res.Body.Close() 6550 } 6551 return nil, &googleapi.Error{ 6552 Code: res.StatusCode, 6553 Header: res.Header, 6554 } 6555 } 6556 if err != nil { 6557 return nil, err 6558 } 6559 defer googleapi.CloseBody(res) 6560 if err := googleapi.CheckResponse(res); err != nil { 6561 return nil, err 6562 } 6563 ret := &Operation{ 6564 ServerResponse: googleapi.ServerResponse{ 6565 Header: res.Header, 6566 HTTPStatusCode: res.StatusCode, 6567 }, 6568 } 6569 target := &ret 6570 if err := gensupport.DecodeResponse(target, res); err != nil { 6571 return nil, err 6572 } 6573 return ret, nil 6574 // { 6575 // "description": "Creates a new managed service.\nPlease note one producer project can own no more than 20 services.\n\nOperation\u003cresponse: ManagedService\u003e", 6576 // "flatPath": "v1/services", 6577 // "httpMethod": "POST", 6578 // "id": "servicemanagement.services.create", 6579 // "parameterOrder": [], 6580 // "parameters": {}, 6581 // "path": "v1/services", 6582 // "request": { 6583 // "$ref": "ManagedService" 6584 // }, 6585 // "response": { 6586 // "$ref": "Operation" 6587 // }, 6588 // "scopes": [ 6589 // "https://www.googleapis.com/auth/cloud-platform", 6590 // "https://www.googleapis.com/auth/service.management" 6591 // ] 6592 // } 6593 6594} 6595 6596// method id "servicemanagement.services.delete": 6597 6598type ServicesDeleteCall struct { 6599 s *APIService 6600 serviceName string 6601 urlParams_ gensupport.URLParams 6602 ctx_ context.Context 6603 header_ http.Header 6604} 6605 6606// Delete: Deletes a managed service. This method will change the 6607// service to the 6608// `Soft-Delete` state for 30 days. Within this period, service 6609// producers may 6610// call UndeleteService to restore the service. 6611// After 30 days, the service will be permanently 6612// deleted. 6613// 6614// Operation<response: google.protobuf.Empty> 6615func (r *ServicesService) Delete(serviceName string) *ServicesDeleteCall { 6616 c := &ServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6617 c.serviceName = serviceName 6618 return c 6619} 6620 6621// Fields allows partial responses to be retrieved. See 6622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6623// for more information. 6624func (c *ServicesDeleteCall) Fields(s ...googleapi.Field) *ServicesDeleteCall { 6625 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6626 return c 6627} 6628 6629// Context sets the context to be used in this call's Do method. Any 6630// pending HTTP request will be aborted if the provided context is 6631// canceled. 6632func (c *ServicesDeleteCall) Context(ctx context.Context) *ServicesDeleteCall { 6633 c.ctx_ = ctx 6634 return c 6635} 6636 6637// Header returns an http.Header that can be modified by the caller to 6638// add HTTP headers to the request. 6639func (c *ServicesDeleteCall) Header() http.Header { 6640 if c.header_ == nil { 6641 c.header_ = make(http.Header) 6642 } 6643 return c.header_ 6644} 6645 6646func (c *ServicesDeleteCall) doRequest(alt string) (*http.Response, error) { 6647 reqHeaders := make(http.Header) 6648 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6649 for k, v := range c.header_ { 6650 reqHeaders[k] = v 6651 } 6652 reqHeaders.Set("User-Agent", c.s.userAgent()) 6653 var body io.Reader = nil 6654 c.urlParams_.Set("alt", alt) 6655 c.urlParams_.Set("prettyPrint", "false") 6656 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}") 6657 urls += "?" + c.urlParams_.Encode() 6658 req, err := http.NewRequest("DELETE", urls, body) 6659 if err != nil { 6660 return nil, err 6661 } 6662 req.Header = reqHeaders 6663 googleapi.Expand(req.URL, map[string]string{ 6664 "serviceName": c.serviceName, 6665 }) 6666 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6667} 6668 6669// Do executes the "servicemanagement.services.delete" call. 6670// Exactly one of *Operation or error will be non-nil. Any non-2xx 6671// status code is an error. Response headers are in either 6672// *Operation.ServerResponse.Header or (if a response was returned at 6673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6674// to check whether the returned error was because 6675// http.StatusNotModified was returned. 6676func (c *ServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6677 gensupport.SetOptions(c.urlParams_, opts...) 6678 res, err := c.doRequest("json") 6679 if res != nil && res.StatusCode == http.StatusNotModified { 6680 if res.Body != nil { 6681 res.Body.Close() 6682 } 6683 return nil, &googleapi.Error{ 6684 Code: res.StatusCode, 6685 Header: res.Header, 6686 } 6687 } 6688 if err != nil { 6689 return nil, err 6690 } 6691 defer googleapi.CloseBody(res) 6692 if err := googleapi.CheckResponse(res); err != nil { 6693 return nil, err 6694 } 6695 ret := &Operation{ 6696 ServerResponse: googleapi.ServerResponse{ 6697 Header: res.Header, 6698 HTTPStatusCode: res.StatusCode, 6699 }, 6700 } 6701 target := &ret 6702 if err := gensupport.DecodeResponse(target, res); err != nil { 6703 return nil, err 6704 } 6705 return ret, nil 6706 // { 6707 // "description": "Deletes a managed service. This method will change the service to the\n`Soft-Delete` state for 30 days. Within this period, service producers may\ncall UndeleteService to restore the service.\nAfter 30 days, the service will be permanently deleted.\n\nOperation\u003cresponse: google.protobuf.Empty\u003e", 6708 // "flatPath": "v1/services/{serviceName}", 6709 // "httpMethod": "DELETE", 6710 // "id": "servicemanagement.services.delete", 6711 // "parameterOrder": [ 6712 // "serviceName" 6713 // ], 6714 // "parameters": { 6715 // "serviceName": { 6716 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 6717 // "location": "path", 6718 // "required": true, 6719 // "type": "string" 6720 // } 6721 // }, 6722 // "path": "v1/services/{serviceName}", 6723 // "response": { 6724 // "$ref": "Operation" 6725 // }, 6726 // "scopes": [ 6727 // "https://www.googleapis.com/auth/cloud-platform", 6728 // "https://www.googleapis.com/auth/service.management" 6729 // ] 6730 // } 6731 6732} 6733 6734// method id "servicemanagement.services.disable": 6735 6736type ServicesDisableCall struct { 6737 s *APIService 6738 serviceName string 6739 disableservicerequest *DisableServiceRequest 6740 urlParams_ gensupport.URLParams 6741 ctx_ context.Context 6742 header_ http.Header 6743} 6744 6745// Disable: Disables a service for a project, so it can no longer be 6746// be used for the project. It prevents accidental usage that may 6747// cause 6748// unexpected billing charges or security leaks. 6749// 6750// Operation<response: DisableServiceResponse> 6751func (r *ServicesService) Disable(serviceName string, disableservicerequest *DisableServiceRequest) *ServicesDisableCall { 6752 c := &ServicesDisableCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6753 c.serviceName = serviceName 6754 c.disableservicerequest = disableservicerequest 6755 return c 6756} 6757 6758// Fields allows partial responses to be retrieved. See 6759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6760// for more information. 6761func (c *ServicesDisableCall) Fields(s ...googleapi.Field) *ServicesDisableCall { 6762 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6763 return c 6764} 6765 6766// Context sets the context to be used in this call's Do method. Any 6767// pending HTTP request will be aborted if the provided context is 6768// canceled. 6769func (c *ServicesDisableCall) Context(ctx context.Context) *ServicesDisableCall { 6770 c.ctx_ = ctx 6771 return c 6772} 6773 6774// Header returns an http.Header that can be modified by the caller to 6775// add HTTP headers to the request. 6776func (c *ServicesDisableCall) Header() http.Header { 6777 if c.header_ == nil { 6778 c.header_ = make(http.Header) 6779 } 6780 return c.header_ 6781} 6782 6783func (c *ServicesDisableCall) doRequest(alt string) (*http.Response, error) { 6784 reqHeaders := make(http.Header) 6785 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6786 for k, v := range c.header_ { 6787 reqHeaders[k] = v 6788 } 6789 reqHeaders.Set("User-Agent", c.s.userAgent()) 6790 var body io.Reader = nil 6791 body, err := googleapi.WithoutDataWrapper.JSONReader(c.disableservicerequest) 6792 if err != nil { 6793 return nil, err 6794 } 6795 reqHeaders.Set("Content-Type", "application/json") 6796 c.urlParams_.Set("alt", alt) 6797 c.urlParams_.Set("prettyPrint", "false") 6798 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}:disable") 6799 urls += "?" + c.urlParams_.Encode() 6800 req, err := http.NewRequest("POST", urls, body) 6801 if err != nil { 6802 return nil, err 6803 } 6804 req.Header = reqHeaders 6805 googleapi.Expand(req.URL, map[string]string{ 6806 "serviceName": c.serviceName, 6807 }) 6808 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6809} 6810 6811// Do executes the "servicemanagement.services.disable" call. 6812// Exactly one of *Operation or error will be non-nil. Any non-2xx 6813// status code is an error. Response headers are in either 6814// *Operation.ServerResponse.Header or (if a response was returned at 6815// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6816// to check whether the returned error was because 6817// http.StatusNotModified was returned. 6818func (c *ServicesDisableCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6819 gensupport.SetOptions(c.urlParams_, opts...) 6820 res, err := c.doRequest("json") 6821 if res != nil && res.StatusCode == http.StatusNotModified { 6822 if res.Body != nil { 6823 res.Body.Close() 6824 } 6825 return nil, &googleapi.Error{ 6826 Code: res.StatusCode, 6827 Header: res.Header, 6828 } 6829 } 6830 if err != nil { 6831 return nil, err 6832 } 6833 defer googleapi.CloseBody(res) 6834 if err := googleapi.CheckResponse(res); err != nil { 6835 return nil, err 6836 } 6837 ret := &Operation{ 6838 ServerResponse: googleapi.ServerResponse{ 6839 Header: res.Header, 6840 HTTPStatusCode: res.StatusCode, 6841 }, 6842 } 6843 target := &ret 6844 if err := gensupport.DecodeResponse(target, res); err != nil { 6845 return nil, err 6846 } 6847 return ret, nil 6848 // { 6849 // "description": "Disables a service for a project, so it can no longer be\nbe used for the project. It prevents accidental usage that may cause\nunexpected billing charges or security leaks.\n\nOperation\u003cresponse: DisableServiceResponse\u003e", 6850 // "flatPath": "v1/services/{serviceName}:disable", 6851 // "httpMethod": "POST", 6852 // "id": "servicemanagement.services.disable", 6853 // "parameterOrder": [ 6854 // "serviceName" 6855 // ], 6856 // "parameters": { 6857 // "serviceName": { 6858 // "description": "Required. Name of the service to disable. Specifying an unknown service name\nwill cause the request to fail.", 6859 // "location": "path", 6860 // "required": true, 6861 // "type": "string" 6862 // } 6863 // }, 6864 // "path": "v1/services/{serviceName}:disable", 6865 // "request": { 6866 // "$ref": "DisableServiceRequest" 6867 // }, 6868 // "response": { 6869 // "$ref": "Operation" 6870 // }, 6871 // "scopes": [ 6872 // "https://www.googleapis.com/auth/cloud-platform", 6873 // "https://www.googleapis.com/auth/service.management" 6874 // ] 6875 // } 6876 6877} 6878 6879// method id "servicemanagement.services.enable": 6880 6881type ServicesEnableCall struct { 6882 s *APIService 6883 serviceName string 6884 enableservicerequest *EnableServiceRequest 6885 urlParams_ gensupport.URLParams 6886 ctx_ context.Context 6887 header_ http.Header 6888} 6889 6890// Enable: Enables a service for a project, so it can be used 6891// for the project. See 6892// [Cloud Auth Guide](https://cloud.google.com/docs/authentication) 6893// for 6894// more information. 6895// 6896// Operation<response: EnableServiceResponse> 6897func (r *ServicesService) Enable(serviceName string, enableservicerequest *EnableServiceRequest) *ServicesEnableCall { 6898 c := &ServicesEnableCall{s: r.s, urlParams_: make(gensupport.URLParams)} 6899 c.serviceName = serviceName 6900 c.enableservicerequest = enableservicerequest 6901 return c 6902} 6903 6904// Fields allows partial responses to be retrieved. See 6905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 6906// for more information. 6907func (c *ServicesEnableCall) Fields(s ...googleapi.Field) *ServicesEnableCall { 6908 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 6909 return c 6910} 6911 6912// Context sets the context to be used in this call's Do method. Any 6913// pending HTTP request will be aborted if the provided context is 6914// canceled. 6915func (c *ServicesEnableCall) Context(ctx context.Context) *ServicesEnableCall { 6916 c.ctx_ = ctx 6917 return c 6918} 6919 6920// Header returns an http.Header that can be modified by the caller to 6921// add HTTP headers to the request. 6922func (c *ServicesEnableCall) Header() http.Header { 6923 if c.header_ == nil { 6924 c.header_ = make(http.Header) 6925 } 6926 return c.header_ 6927} 6928 6929func (c *ServicesEnableCall) doRequest(alt string) (*http.Response, error) { 6930 reqHeaders := make(http.Header) 6931 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 6932 for k, v := range c.header_ { 6933 reqHeaders[k] = v 6934 } 6935 reqHeaders.Set("User-Agent", c.s.userAgent()) 6936 var body io.Reader = nil 6937 body, err := googleapi.WithoutDataWrapper.JSONReader(c.enableservicerequest) 6938 if err != nil { 6939 return nil, err 6940 } 6941 reqHeaders.Set("Content-Type", "application/json") 6942 c.urlParams_.Set("alt", alt) 6943 c.urlParams_.Set("prettyPrint", "false") 6944 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}:enable") 6945 urls += "?" + c.urlParams_.Encode() 6946 req, err := http.NewRequest("POST", urls, body) 6947 if err != nil { 6948 return nil, err 6949 } 6950 req.Header = reqHeaders 6951 googleapi.Expand(req.URL, map[string]string{ 6952 "serviceName": c.serviceName, 6953 }) 6954 return gensupport.SendRequest(c.ctx_, c.s.client, req) 6955} 6956 6957// Do executes the "servicemanagement.services.enable" call. 6958// Exactly one of *Operation or error will be non-nil. Any non-2xx 6959// status code is an error. Response headers are in either 6960// *Operation.ServerResponse.Header or (if a response was returned at 6961// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 6962// to check whether the returned error was because 6963// http.StatusNotModified was returned. 6964func (c *ServicesEnableCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 6965 gensupport.SetOptions(c.urlParams_, opts...) 6966 res, err := c.doRequest("json") 6967 if res != nil && res.StatusCode == http.StatusNotModified { 6968 if res.Body != nil { 6969 res.Body.Close() 6970 } 6971 return nil, &googleapi.Error{ 6972 Code: res.StatusCode, 6973 Header: res.Header, 6974 } 6975 } 6976 if err != nil { 6977 return nil, err 6978 } 6979 defer googleapi.CloseBody(res) 6980 if err := googleapi.CheckResponse(res); err != nil { 6981 return nil, err 6982 } 6983 ret := &Operation{ 6984 ServerResponse: googleapi.ServerResponse{ 6985 Header: res.Header, 6986 HTTPStatusCode: res.StatusCode, 6987 }, 6988 } 6989 target := &ret 6990 if err := gensupport.DecodeResponse(target, res); err != nil { 6991 return nil, err 6992 } 6993 return ret, nil 6994 // { 6995 // "description": "Enables a service for a project, so it can be used\nfor the project. See\n[Cloud Auth Guide](https://cloud.google.com/docs/authentication) for\nmore information.\n\nOperation\u003cresponse: EnableServiceResponse\u003e", 6996 // "flatPath": "v1/services/{serviceName}:enable", 6997 // "httpMethod": "POST", 6998 // "id": "servicemanagement.services.enable", 6999 // "parameterOrder": [ 7000 // "serviceName" 7001 // ], 7002 // "parameters": { 7003 // "serviceName": { 7004 // "description": "Required. Name of the service to enable. Specifying an unknown service name will\ncause the request to fail.", 7005 // "location": "path", 7006 // "required": true, 7007 // "type": "string" 7008 // } 7009 // }, 7010 // "path": "v1/services/{serviceName}:enable", 7011 // "request": { 7012 // "$ref": "EnableServiceRequest" 7013 // }, 7014 // "response": { 7015 // "$ref": "Operation" 7016 // }, 7017 // "scopes": [ 7018 // "https://www.googleapis.com/auth/cloud-platform", 7019 // "https://www.googleapis.com/auth/service.management" 7020 // ] 7021 // } 7022 7023} 7024 7025// method id "servicemanagement.services.generateConfigReport": 7026 7027type ServicesGenerateConfigReportCall struct { 7028 s *APIService 7029 generateconfigreportrequest *GenerateConfigReportRequest 7030 urlParams_ gensupport.URLParams 7031 ctx_ context.Context 7032 header_ http.Header 7033} 7034 7035// GenerateConfigReport: Generates and returns a report (errors, 7036// warnings and changes from 7037// existing configurations) associated 7038// with 7039// GenerateConfigReportRequest.new_value 7040// 7041// If GenerateConfigReportRequest.old_value is 7042// specified, 7043// GenerateConfigReportRequest will contain a single ChangeReport based 7044// on the 7045// comparison between GenerateConfigReportRequest.new_value 7046// and 7047// GenerateConfigReportRequest.old_value. 7048// If GenerateConfigReportRequest.old_value is not specified, this 7049// method 7050// will compare GenerateConfigReportRequest.new_value with the last 7051// pushed 7052// service configuration. 7053func (r *ServicesService) GenerateConfigReport(generateconfigreportrequest *GenerateConfigReportRequest) *ServicesGenerateConfigReportCall { 7054 c := &ServicesGenerateConfigReportCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7055 c.generateconfigreportrequest = generateconfigreportrequest 7056 return c 7057} 7058 7059// Fields allows partial responses to be retrieved. See 7060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7061// for more information. 7062func (c *ServicesGenerateConfigReportCall) Fields(s ...googleapi.Field) *ServicesGenerateConfigReportCall { 7063 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7064 return c 7065} 7066 7067// Context sets the context to be used in this call's Do method. Any 7068// pending HTTP request will be aborted if the provided context is 7069// canceled. 7070func (c *ServicesGenerateConfigReportCall) Context(ctx context.Context) *ServicesGenerateConfigReportCall { 7071 c.ctx_ = ctx 7072 return c 7073} 7074 7075// Header returns an http.Header that can be modified by the caller to 7076// add HTTP headers to the request. 7077func (c *ServicesGenerateConfigReportCall) Header() http.Header { 7078 if c.header_ == nil { 7079 c.header_ = make(http.Header) 7080 } 7081 return c.header_ 7082} 7083 7084func (c *ServicesGenerateConfigReportCall) doRequest(alt string) (*http.Response, error) { 7085 reqHeaders := make(http.Header) 7086 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7087 for k, v := range c.header_ { 7088 reqHeaders[k] = v 7089 } 7090 reqHeaders.Set("User-Agent", c.s.userAgent()) 7091 var body io.Reader = nil 7092 body, err := googleapi.WithoutDataWrapper.JSONReader(c.generateconfigreportrequest) 7093 if err != nil { 7094 return nil, err 7095 } 7096 reqHeaders.Set("Content-Type", "application/json") 7097 c.urlParams_.Set("alt", alt) 7098 c.urlParams_.Set("prettyPrint", "false") 7099 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services:generateConfigReport") 7100 urls += "?" + c.urlParams_.Encode() 7101 req, err := http.NewRequest("POST", urls, body) 7102 if err != nil { 7103 return nil, err 7104 } 7105 req.Header = reqHeaders 7106 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7107} 7108 7109// Do executes the "servicemanagement.services.generateConfigReport" call. 7110// Exactly one of *GenerateConfigReportResponse or error will be 7111// non-nil. Any non-2xx status code is an error. Response headers are in 7112// either *GenerateConfigReportResponse.ServerResponse.Header or (if a 7113// response was returned at all) in error.(*googleapi.Error).Header. Use 7114// googleapi.IsNotModified to check whether the returned error was 7115// because http.StatusNotModified was returned. 7116func (c *ServicesGenerateConfigReportCall) Do(opts ...googleapi.CallOption) (*GenerateConfigReportResponse, error) { 7117 gensupport.SetOptions(c.urlParams_, opts...) 7118 res, err := c.doRequest("json") 7119 if res != nil && res.StatusCode == http.StatusNotModified { 7120 if res.Body != nil { 7121 res.Body.Close() 7122 } 7123 return nil, &googleapi.Error{ 7124 Code: res.StatusCode, 7125 Header: res.Header, 7126 } 7127 } 7128 if err != nil { 7129 return nil, err 7130 } 7131 defer googleapi.CloseBody(res) 7132 if err := googleapi.CheckResponse(res); err != nil { 7133 return nil, err 7134 } 7135 ret := &GenerateConfigReportResponse{ 7136 ServerResponse: googleapi.ServerResponse{ 7137 Header: res.Header, 7138 HTTPStatusCode: res.StatusCode, 7139 }, 7140 } 7141 target := &ret 7142 if err := gensupport.DecodeResponse(target, res); err != nil { 7143 return nil, err 7144 } 7145 return ret, nil 7146 // { 7147 // "description": "Generates and returns a report (errors, warnings and changes from\nexisting configurations) associated with\nGenerateConfigReportRequest.new_value\n\nIf GenerateConfigReportRequest.old_value is specified,\nGenerateConfigReportRequest will contain a single ChangeReport based on the\ncomparison between GenerateConfigReportRequest.new_value and\nGenerateConfigReportRequest.old_value.\nIf GenerateConfigReportRequest.old_value is not specified, this method\nwill compare GenerateConfigReportRequest.new_value with the last pushed\nservice configuration.", 7148 // "flatPath": "v1/services:generateConfigReport", 7149 // "httpMethod": "POST", 7150 // "id": "servicemanagement.services.generateConfigReport", 7151 // "parameterOrder": [], 7152 // "parameters": {}, 7153 // "path": "v1/services:generateConfigReport", 7154 // "request": { 7155 // "$ref": "GenerateConfigReportRequest" 7156 // }, 7157 // "response": { 7158 // "$ref": "GenerateConfigReportResponse" 7159 // }, 7160 // "scopes": [ 7161 // "https://www.googleapis.com/auth/cloud-platform", 7162 // "https://www.googleapis.com/auth/service.management" 7163 // ] 7164 // } 7165 7166} 7167 7168// method id "servicemanagement.services.get": 7169 7170type ServicesGetCall struct { 7171 s *APIService 7172 serviceName string 7173 urlParams_ gensupport.URLParams 7174 ifNoneMatch_ string 7175 ctx_ context.Context 7176 header_ http.Header 7177} 7178 7179// Get: Gets a managed service. Authentication is required unless the 7180// service is 7181// public. 7182func (r *ServicesService) Get(serviceName string) *ServicesGetCall { 7183 c := &ServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7184 c.serviceName = serviceName 7185 return c 7186} 7187 7188// Fields allows partial responses to be retrieved. See 7189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7190// for more information. 7191func (c *ServicesGetCall) Fields(s ...googleapi.Field) *ServicesGetCall { 7192 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7193 return c 7194} 7195 7196// IfNoneMatch sets the optional parameter which makes the operation 7197// fail if the object's ETag matches the given value. This is useful for 7198// getting updates only after the object has changed since the last 7199// request. Use googleapi.IsNotModified to check whether the response 7200// error from Do is the result of In-None-Match. 7201func (c *ServicesGetCall) IfNoneMatch(entityTag string) *ServicesGetCall { 7202 c.ifNoneMatch_ = entityTag 7203 return c 7204} 7205 7206// Context sets the context to be used in this call's Do method. Any 7207// pending HTTP request will be aborted if the provided context is 7208// canceled. 7209func (c *ServicesGetCall) Context(ctx context.Context) *ServicesGetCall { 7210 c.ctx_ = ctx 7211 return c 7212} 7213 7214// Header returns an http.Header that can be modified by the caller to 7215// add HTTP headers to the request. 7216func (c *ServicesGetCall) Header() http.Header { 7217 if c.header_ == nil { 7218 c.header_ = make(http.Header) 7219 } 7220 return c.header_ 7221} 7222 7223func (c *ServicesGetCall) doRequest(alt string) (*http.Response, error) { 7224 reqHeaders := make(http.Header) 7225 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7226 for k, v := range c.header_ { 7227 reqHeaders[k] = v 7228 } 7229 reqHeaders.Set("User-Agent", c.s.userAgent()) 7230 if c.ifNoneMatch_ != "" { 7231 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 7232 } 7233 var body io.Reader = nil 7234 c.urlParams_.Set("alt", alt) 7235 c.urlParams_.Set("prettyPrint", "false") 7236 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}") 7237 urls += "?" + c.urlParams_.Encode() 7238 req, err := http.NewRequest("GET", urls, body) 7239 if err != nil { 7240 return nil, err 7241 } 7242 req.Header = reqHeaders 7243 googleapi.Expand(req.URL, map[string]string{ 7244 "serviceName": c.serviceName, 7245 }) 7246 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7247} 7248 7249// Do executes the "servicemanagement.services.get" call. 7250// Exactly one of *ManagedService or error will be non-nil. Any non-2xx 7251// status code is an error. Response headers are in either 7252// *ManagedService.ServerResponse.Header or (if a response was returned 7253// at all) in error.(*googleapi.Error).Header. Use 7254// googleapi.IsNotModified to check whether the returned error was 7255// because http.StatusNotModified was returned. 7256func (c *ServicesGetCall) Do(opts ...googleapi.CallOption) (*ManagedService, error) { 7257 gensupport.SetOptions(c.urlParams_, opts...) 7258 res, err := c.doRequest("json") 7259 if res != nil && res.StatusCode == http.StatusNotModified { 7260 if res.Body != nil { 7261 res.Body.Close() 7262 } 7263 return nil, &googleapi.Error{ 7264 Code: res.StatusCode, 7265 Header: res.Header, 7266 } 7267 } 7268 if err != nil { 7269 return nil, err 7270 } 7271 defer googleapi.CloseBody(res) 7272 if err := googleapi.CheckResponse(res); err != nil { 7273 return nil, err 7274 } 7275 ret := &ManagedService{ 7276 ServerResponse: googleapi.ServerResponse{ 7277 Header: res.Header, 7278 HTTPStatusCode: res.StatusCode, 7279 }, 7280 } 7281 target := &ret 7282 if err := gensupport.DecodeResponse(target, res); err != nil { 7283 return nil, err 7284 } 7285 return ret, nil 7286 // { 7287 // "description": "Gets a managed service. Authentication is required unless the service is\npublic.", 7288 // "flatPath": "v1/services/{serviceName}", 7289 // "httpMethod": "GET", 7290 // "id": "servicemanagement.services.get", 7291 // "parameterOrder": [ 7292 // "serviceName" 7293 // ], 7294 // "parameters": { 7295 // "serviceName": { 7296 // "description": "Required. The name of the service. See the `ServiceManager` overview for naming\nrequirements. For example: `example.googleapis.com`.", 7297 // "location": "path", 7298 // "required": true, 7299 // "type": "string" 7300 // } 7301 // }, 7302 // "path": "v1/services/{serviceName}", 7303 // "response": { 7304 // "$ref": "ManagedService" 7305 // }, 7306 // "scopes": [ 7307 // "https://www.googleapis.com/auth/cloud-platform", 7308 // "https://www.googleapis.com/auth/cloud-platform.read-only", 7309 // "https://www.googleapis.com/auth/service.management", 7310 // "https://www.googleapis.com/auth/service.management.readonly" 7311 // ] 7312 // } 7313 7314} 7315 7316// method id "servicemanagement.services.getConfig": 7317 7318type ServicesGetConfigCall struct { 7319 s *APIService 7320 serviceName string 7321 urlParams_ gensupport.URLParams 7322 ifNoneMatch_ string 7323 ctx_ context.Context 7324 header_ http.Header 7325} 7326 7327// GetConfig: Gets a service configuration (version) for a managed 7328// service. 7329func (r *ServicesService) GetConfig(serviceName string) *ServicesGetConfigCall { 7330 c := &ServicesGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7331 c.serviceName = serviceName 7332 return c 7333} 7334 7335// ConfigId sets the optional parameter "configId": Required. The id of 7336// the service configuration resource. 7337// 7338// This field must be specified for the server to return all fields, 7339// including 7340// `SourceInfo`. 7341func (c *ServicesGetConfigCall) ConfigId(configId string) *ServicesGetConfigCall { 7342 c.urlParams_.Set("configId", configId) 7343 return c 7344} 7345 7346// View sets the optional parameter "view": Specifies which parts of the 7347// Service Config should be returned in the 7348// response. 7349// 7350// Possible values: 7351// "BASIC" 7352// "FULL" 7353func (c *ServicesGetConfigCall) View(view string) *ServicesGetConfigCall { 7354 c.urlParams_.Set("view", view) 7355 return c 7356} 7357 7358// Fields allows partial responses to be retrieved. See 7359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7360// for more information. 7361func (c *ServicesGetConfigCall) Fields(s ...googleapi.Field) *ServicesGetConfigCall { 7362 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7363 return c 7364} 7365 7366// IfNoneMatch sets the optional parameter which makes the operation 7367// fail if the object's ETag matches the given value. This is useful for 7368// getting updates only after the object has changed since the last 7369// request. Use googleapi.IsNotModified to check whether the response 7370// error from Do is the result of In-None-Match. 7371func (c *ServicesGetConfigCall) IfNoneMatch(entityTag string) *ServicesGetConfigCall { 7372 c.ifNoneMatch_ = entityTag 7373 return c 7374} 7375 7376// Context sets the context to be used in this call's Do method. Any 7377// pending HTTP request will be aborted if the provided context is 7378// canceled. 7379func (c *ServicesGetConfigCall) Context(ctx context.Context) *ServicesGetConfigCall { 7380 c.ctx_ = ctx 7381 return c 7382} 7383 7384// Header returns an http.Header that can be modified by the caller to 7385// add HTTP headers to the request. 7386func (c *ServicesGetConfigCall) Header() http.Header { 7387 if c.header_ == nil { 7388 c.header_ = make(http.Header) 7389 } 7390 return c.header_ 7391} 7392 7393func (c *ServicesGetConfigCall) doRequest(alt string) (*http.Response, error) { 7394 reqHeaders := make(http.Header) 7395 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7396 for k, v := range c.header_ { 7397 reqHeaders[k] = v 7398 } 7399 reqHeaders.Set("User-Agent", c.s.userAgent()) 7400 if c.ifNoneMatch_ != "" { 7401 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 7402 } 7403 var body io.Reader = nil 7404 c.urlParams_.Set("alt", alt) 7405 c.urlParams_.Set("prettyPrint", "false") 7406 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/config") 7407 urls += "?" + c.urlParams_.Encode() 7408 req, err := http.NewRequest("GET", urls, body) 7409 if err != nil { 7410 return nil, err 7411 } 7412 req.Header = reqHeaders 7413 googleapi.Expand(req.URL, map[string]string{ 7414 "serviceName": c.serviceName, 7415 }) 7416 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7417} 7418 7419// Do executes the "servicemanagement.services.getConfig" call. 7420// Exactly one of *Service or error will be non-nil. Any non-2xx status 7421// code is an error. Response headers are in either 7422// *Service.ServerResponse.Header or (if a response was returned at all) 7423// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 7424// check whether the returned error was because http.StatusNotModified 7425// was returned. 7426func (c *ServicesGetConfigCall) Do(opts ...googleapi.CallOption) (*Service, error) { 7427 gensupport.SetOptions(c.urlParams_, opts...) 7428 res, err := c.doRequest("json") 7429 if res != nil && res.StatusCode == http.StatusNotModified { 7430 if res.Body != nil { 7431 res.Body.Close() 7432 } 7433 return nil, &googleapi.Error{ 7434 Code: res.StatusCode, 7435 Header: res.Header, 7436 } 7437 } 7438 if err != nil { 7439 return nil, err 7440 } 7441 defer googleapi.CloseBody(res) 7442 if err := googleapi.CheckResponse(res); err != nil { 7443 return nil, err 7444 } 7445 ret := &Service{ 7446 ServerResponse: googleapi.ServerResponse{ 7447 Header: res.Header, 7448 HTTPStatusCode: res.StatusCode, 7449 }, 7450 } 7451 target := &ret 7452 if err := gensupport.DecodeResponse(target, res); err != nil { 7453 return nil, err 7454 } 7455 return ret, nil 7456 // { 7457 // "description": "Gets a service configuration (version) for a managed service.", 7458 // "flatPath": "v1/services/{serviceName}/config", 7459 // "httpMethod": "GET", 7460 // "id": "servicemanagement.services.getConfig", 7461 // "parameterOrder": [ 7462 // "serviceName" 7463 // ], 7464 // "parameters": { 7465 // "configId": { 7466 // "description": "Required. The id of the service configuration resource.\n\nThis field must be specified for the server to return all fields, including\n`SourceInfo`.", 7467 // "location": "query", 7468 // "type": "string" 7469 // }, 7470 // "serviceName": { 7471 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 7472 // "location": "path", 7473 // "required": true, 7474 // "type": "string" 7475 // }, 7476 // "view": { 7477 // "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", 7478 // "enum": [ 7479 // "BASIC", 7480 // "FULL" 7481 // ], 7482 // "location": "query", 7483 // "type": "string" 7484 // } 7485 // }, 7486 // "path": "v1/services/{serviceName}/config", 7487 // "response": { 7488 // "$ref": "Service" 7489 // }, 7490 // "scopes": [ 7491 // "https://www.googleapis.com/auth/cloud-platform", 7492 // "https://www.googleapis.com/auth/cloud-platform.read-only", 7493 // "https://www.googleapis.com/auth/service.management", 7494 // "https://www.googleapis.com/auth/service.management.readonly" 7495 // ] 7496 // } 7497 7498} 7499 7500// method id "servicemanagement.services.getIamPolicy": 7501 7502type ServicesGetIamPolicyCall struct { 7503 s *APIService 7504 resource string 7505 getiampolicyrequest *GetIamPolicyRequest 7506 urlParams_ gensupport.URLParams 7507 ctx_ context.Context 7508 header_ http.Header 7509} 7510 7511// GetIamPolicy: Gets the access control policy for a resource. 7512// Returns an empty policy if the resource exists and does not have a 7513// policy 7514// set. 7515func (r *ServicesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ServicesGetIamPolicyCall { 7516 c := &ServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7517 c.resource = resource 7518 c.getiampolicyrequest = getiampolicyrequest 7519 return c 7520} 7521 7522// Fields allows partial responses to be retrieved. See 7523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7524// for more information. 7525func (c *ServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesGetIamPolicyCall { 7526 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7527 return c 7528} 7529 7530// Context sets the context to be used in this call's Do method. Any 7531// pending HTTP request will be aborted if the provided context is 7532// canceled. 7533func (c *ServicesGetIamPolicyCall) Context(ctx context.Context) *ServicesGetIamPolicyCall { 7534 c.ctx_ = ctx 7535 return c 7536} 7537 7538// Header returns an http.Header that can be modified by the caller to 7539// add HTTP headers to the request. 7540func (c *ServicesGetIamPolicyCall) Header() http.Header { 7541 if c.header_ == nil { 7542 c.header_ = make(http.Header) 7543 } 7544 return c.header_ 7545} 7546 7547func (c *ServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { 7548 reqHeaders := make(http.Header) 7549 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7550 for k, v := range c.header_ { 7551 reqHeaders[k] = v 7552 } 7553 reqHeaders.Set("User-Agent", c.s.userAgent()) 7554 var body io.Reader = nil 7555 body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest) 7556 if err != nil { 7557 return nil, err 7558 } 7559 reqHeaders.Set("Content-Type", "application/json") 7560 c.urlParams_.Set("alt", alt) 7561 c.urlParams_.Set("prettyPrint", "false") 7562 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy") 7563 urls += "?" + c.urlParams_.Encode() 7564 req, err := http.NewRequest("POST", urls, body) 7565 if err != nil { 7566 return nil, err 7567 } 7568 req.Header = reqHeaders 7569 googleapi.Expand(req.URL, map[string]string{ 7570 "resource": c.resource, 7571 }) 7572 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7573} 7574 7575// Do executes the "servicemanagement.services.getIamPolicy" call. 7576// Exactly one of *Policy or error will be non-nil. Any non-2xx status 7577// code is an error. Response headers are in either 7578// *Policy.ServerResponse.Header or (if a response was returned at all) 7579// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 7580// check whether the returned error was because http.StatusNotModified 7581// was returned. 7582func (c *ServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { 7583 gensupport.SetOptions(c.urlParams_, opts...) 7584 res, err := c.doRequest("json") 7585 if res != nil && res.StatusCode == http.StatusNotModified { 7586 if res.Body != nil { 7587 res.Body.Close() 7588 } 7589 return nil, &googleapi.Error{ 7590 Code: res.StatusCode, 7591 Header: res.Header, 7592 } 7593 } 7594 if err != nil { 7595 return nil, err 7596 } 7597 defer googleapi.CloseBody(res) 7598 if err := googleapi.CheckResponse(res); err != nil { 7599 return nil, err 7600 } 7601 ret := &Policy{ 7602 ServerResponse: googleapi.ServerResponse{ 7603 Header: res.Header, 7604 HTTPStatusCode: res.StatusCode, 7605 }, 7606 } 7607 target := &ret 7608 if err := gensupport.DecodeResponse(target, res); err != nil { 7609 return nil, err 7610 } 7611 return ret, nil 7612 // { 7613 // "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", 7614 // "flatPath": "v1/services/{servicesId}:getIamPolicy", 7615 // "httpMethod": "POST", 7616 // "id": "servicemanagement.services.getIamPolicy", 7617 // "parameterOrder": [ 7618 // "resource" 7619 // ], 7620 // "parameters": { 7621 // "resource": { 7622 // "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", 7623 // "location": "path", 7624 // "pattern": "^services/[^/]+$", 7625 // "required": true, 7626 // "type": "string" 7627 // } 7628 // }, 7629 // "path": "v1/{+resource}:getIamPolicy", 7630 // "request": { 7631 // "$ref": "GetIamPolicyRequest" 7632 // }, 7633 // "response": { 7634 // "$ref": "Policy" 7635 // }, 7636 // "scopes": [ 7637 // "https://www.googleapis.com/auth/cloud-platform", 7638 // "https://www.googleapis.com/auth/cloud-platform.read-only", 7639 // "https://www.googleapis.com/auth/service.management", 7640 // "https://www.googleapis.com/auth/service.management.readonly" 7641 // ] 7642 // } 7643 7644} 7645 7646// method id "servicemanagement.services.list": 7647 7648type ServicesListCall struct { 7649 s *APIService 7650 urlParams_ gensupport.URLParams 7651 ifNoneMatch_ string 7652 ctx_ context.Context 7653 header_ http.Header 7654} 7655 7656// List: Lists managed services. 7657// 7658// Returns all public services. For authenticated users, also returns 7659// all 7660// services the calling user has "servicemanagement.services.get" 7661// permission 7662// for. 7663// 7664// **BETA:** If the caller specifies the `consumer_id`, it returns only 7665// the 7666// services enabled on the consumer. The `consumer_id` must have the 7667// format 7668// of "project:{PROJECT-ID}". 7669func (r *ServicesService) List() *ServicesListCall { 7670 c := &ServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7671 return c 7672} 7673 7674// ConsumerId sets the optional parameter "consumerId": Include services 7675// consumed by the specified consumer. 7676// 7677// The Google Service Management implementation accepts the 7678// following 7679// forms: 7680// - project:<project_id> 7681func (c *ServicesListCall) ConsumerId(consumerId string) *ServicesListCall { 7682 c.urlParams_.Set("consumerId", consumerId) 7683 return c 7684} 7685 7686// PageSize sets the optional parameter "pageSize": The max number of 7687// items to include in the response list. Page size is 50 7688// if not specified. Maximum value is 100. 7689func (c *ServicesListCall) PageSize(pageSize int64) *ServicesListCall { 7690 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 7691 return c 7692} 7693 7694// PageToken sets the optional parameter "pageToken": Token identifying 7695// which result to start with; returned by a previous list 7696// call. 7697func (c *ServicesListCall) PageToken(pageToken string) *ServicesListCall { 7698 c.urlParams_.Set("pageToken", pageToken) 7699 return c 7700} 7701 7702// ProducerProjectId sets the optional parameter "producerProjectId": 7703// Include services produced by the specified project. 7704func (c *ServicesListCall) ProducerProjectId(producerProjectId string) *ServicesListCall { 7705 c.urlParams_.Set("producerProjectId", producerProjectId) 7706 return c 7707} 7708 7709// Fields allows partial responses to be retrieved. See 7710// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7711// for more information. 7712func (c *ServicesListCall) Fields(s ...googleapi.Field) *ServicesListCall { 7713 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7714 return c 7715} 7716 7717// IfNoneMatch sets the optional parameter which makes the operation 7718// fail if the object's ETag matches the given value. This is useful for 7719// getting updates only after the object has changed since the last 7720// request. Use googleapi.IsNotModified to check whether the response 7721// error from Do is the result of In-None-Match. 7722func (c *ServicesListCall) IfNoneMatch(entityTag string) *ServicesListCall { 7723 c.ifNoneMatch_ = entityTag 7724 return c 7725} 7726 7727// Context sets the context to be used in this call's Do method. Any 7728// pending HTTP request will be aborted if the provided context is 7729// canceled. 7730func (c *ServicesListCall) Context(ctx context.Context) *ServicesListCall { 7731 c.ctx_ = ctx 7732 return c 7733} 7734 7735// Header returns an http.Header that can be modified by the caller to 7736// add HTTP headers to the request. 7737func (c *ServicesListCall) Header() http.Header { 7738 if c.header_ == nil { 7739 c.header_ = make(http.Header) 7740 } 7741 return c.header_ 7742} 7743 7744func (c *ServicesListCall) doRequest(alt string) (*http.Response, error) { 7745 reqHeaders := make(http.Header) 7746 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7747 for k, v := range c.header_ { 7748 reqHeaders[k] = v 7749 } 7750 reqHeaders.Set("User-Agent", c.s.userAgent()) 7751 if c.ifNoneMatch_ != "" { 7752 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 7753 } 7754 var body io.Reader = nil 7755 c.urlParams_.Set("alt", alt) 7756 c.urlParams_.Set("prettyPrint", "false") 7757 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services") 7758 urls += "?" + c.urlParams_.Encode() 7759 req, err := http.NewRequest("GET", urls, body) 7760 if err != nil { 7761 return nil, err 7762 } 7763 req.Header = reqHeaders 7764 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7765} 7766 7767// Do executes the "servicemanagement.services.list" call. 7768// Exactly one of *ListServicesResponse or error will be non-nil. Any 7769// non-2xx status code is an error. Response headers are in either 7770// *ListServicesResponse.ServerResponse.Header or (if a response was 7771// returned at all) in error.(*googleapi.Error).Header. Use 7772// googleapi.IsNotModified to check whether the returned error was 7773// because http.StatusNotModified was returned. 7774func (c *ServicesListCall) Do(opts ...googleapi.CallOption) (*ListServicesResponse, error) { 7775 gensupport.SetOptions(c.urlParams_, opts...) 7776 res, err := c.doRequest("json") 7777 if res != nil && res.StatusCode == http.StatusNotModified { 7778 if res.Body != nil { 7779 res.Body.Close() 7780 } 7781 return nil, &googleapi.Error{ 7782 Code: res.StatusCode, 7783 Header: res.Header, 7784 } 7785 } 7786 if err != nil { 7787 return nil, err 7788 } 7789 defer googleapi.CloseBody(res) 7790 if err := googleapi.CheckResponse(res); err != nil { 7791 return nil, err 7792 } 7793 ret := &ListServicesResponse{ 7794 ServerResponse: googleapi.ServerResponse{ 7795 Header: res.Header, 7796 HTTPStatusCode: res.StatusCode, 7797 }, 7798 } 7799 target := &ret 7800 if err := gensupport.DecodeResponse(target, res); err != nil { 7801 return nil, err 7802 } 7803 return ret, nil 7804 // { 7805 // "description": "Lists managed services.\n\nReturns all public services. For authenticated users, also returns all\nservices the calling user has \"servicemanagement.services.get\" permission\nfor.\n\n**BETA:** If the caller specifies the `consumer_id`, it returns only the\nservices enabled on the consumer. The `consumer_id` must have the format\nof \"project:{PROJECT-ID}\".", 7806 // "flatPath": "v1/services", 7807 // "httpMethod": "GET", 7808 // "id": "servicemanagement.services.list", 7809 // "parameterOrder": [], 7810 // "parameters": { 7811 // "consumerId": { 7812 // "description": "Include services consumed by the specified consumer.\n\nThe Google Service Management implementation accepts the following\nforms:\n- project:\u003cproject_id\u003e", 7813 // "location": "query", 7814 // "type": "string" 7815 // }, 7816 // "pageSize": { 7817 // "description": "The max number of items to include in the response list. Page size is 50\nif not specified. Maximum value is 100.", 7818 // "format": "int32", 7819 // "location": "query", 7820 // "type": "integer" 7821 // }, 7822 // "pageToken": { 7823 // "description": "Token identifying which result to start with; returned by a previous list\ncall.", 7824 // "location": "query", 7825 // "type": "string" 7826 // }, 7827 // "producerProjectId": { 7828 // "description": "Include services produced by the specified project.", 7829 // "location": "query", 7830 // "type": "string" 7831 // } 7832 // }, 7833 // "path": "v1/services", 7834 // "response": { 7835 // "$ref": "ListServicesResponse" 7836 // }, 7837 // "scopes": [ 7838 // "https://www.googleapis.com/auth/cloud-platform", 7839 // "https://www.googleapis.com/auth/cloud-platform.read-only", 7840 // "https://www.googleapis.com/auth/service.management", 7841 // "https://www.googleapis.com/auth/service.management.readonly" 7842 // ] 7843 // } 7844 7845} 7846 7847// Pages invokes f for each page of results. 7848// A non-nil error returned from f will halt the iteration. 7849// The provided context supersedes any context provided to the Context method. 7850func (c *ServicesListCall) Pages(ctx context.Context, f func(*ListServicesResponse) error) error { 7851 c.ctx_ = ctx 7852 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 7853 for { 7854 x, err := c.Do() 7855 if err != nil { 7856 return err 7857 } 7858 if err := f(x); err != nil { 7859 return err 7860 } 7861 if x.NextPageToken == "" { 7862 return nil 7863 } 7864 c.PageToken(x.NextPageToken) 7865 } 7866} 7867 7868// method id "servicemanagement.services.setIamPolicy": 7869 7870type ServicesSetIamPolicyCall struct { 7871 s *APIService 7872 resource string 7873 setiampolicyrequest *SetIamPolicyRequest 7874 urlParams_ gensupport.URLParams 7875 ctx_ context.Context 7876 header_ http.Header 7877} 7878 7879// SetIamPolicy: Sets the access control policy on the specified 7880// resource. Replaces any 7881// existing policy. 7882// 7883// Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and 7884// PERMISSION_DENIED 7885func (r *ServicesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ServicesSetIamPolicyCall { 7886 c := &ServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} 7887 c.resource = resource 7888 c.setiampolicyrequest = setiampolicyrequest 7889 return c 7890} 7891 7892// Fields allows partial responses to be retrieved. See 7893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 7894// for more information. 7895func (c *ServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesSetIamPolicyCall { 7896 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 7897 return c 7898} 7899 7900// Context sets the context to be used in this call's Do method. Any 7901// pending HTTP request will be aborted if the provided context is 7902// canceled. 7903func (c *ServicesSetIamPolicyCall) Context(ctx context.Context) *ServicesSetIamPolicyCall { 7904 c.ctx_ = ctx 7905 return c 7906} 7907 7908// Header returns an http.Header that can be modified by the caller to 7909// add HTTP headers to the request. 7910func (c *ServicesSetIamPolicyCall) Header() http.Header { 7911 if c.header_ == nil { 7912 c.header_ = make(http.Header) 7913 } 7914 return c.header_ 7915} 7916 7917func (c *ServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { 7918 reqHeaders := make(http.Header) 7919 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 7920 for k, v := range c.header_ { 7921 reqHeaders[k] = v 7922 } 7923 reqHeaders.Set("User-Agent", c.s.userAgent()) 7924 var body io.Reader = nil 7925 body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest) 7926 if err != nil { 7927 return nil, err 7928 } 7929 reqHeaders.Set("Content-Type", "application/json") 7930 c.urlParams_.Set("alt", alt) 7931 c.urlParams_.Set("prettyPrint", "false") 7932 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy") 7933 urls += "?" + c.urlParams_.Encode() 7934 req, err := http.NewRequest("POST", urls, body) 7935 if err != nil { 7936 return nil, err 7937 } 7938 req.Header = reqHeaders 7939 googleapi.Expand(req.URL, map[string]string{ 7940 "resource": c.resource, 7941 }) 7942 return gensupport.SendRequest(c.ctx_, c.s.client, req) 7943} 7944 7945// Do executes the "servicemanagement.services.setIamPolicy" call. 7946// Exactly one of *Policy or error will be non-nil. Any non-2xx status 7947// code is an error. Response headers are in either 7948// *Policy.ServerResponse.Header or (if a response was returned at all) 7949// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 7950// check whether the returned error was because http.StatusNotModified 7951// was returned. 7952func (c *ServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { 7953 gensupport.SetOptions(c.urlParams_, opts...) 7954 res, err := c.doRequest("json") 7955 if res != nil && res.StatusCode == http.StatusNotModified { 7956 if res.Body != nil { 7957 res.Body.Close() 7958 } 7959 return nil, &googleapi.Error{ 7960 Code: res.StatusCode, 7961 Header: res.Header, 7962 } 7963 } 7964 if err != nil { 7965 return nil, err 7966 } 7967 defer googleapi.CloseBody(res) 7968 if err := googleapi.CheckResponse(res); err != nil { 7969 return nil, err 7970 } 7971 ret := &Policy{ 7972 ServerResponse: googleapi.ServerResponse{ 7973 Header: res.Header, 7974 HTTPStatusCode: res.StatusCode, 7975 }, 7976 } 7977 target := &ret 7978 if err := gensupport.DecodeResponse(target, res); err != nil { 7979 return nil, err 7980 } 7981 return ret, nil 7982 // { 7983 // "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.\n\nCan return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED", 7984 // "flatPath": "v1/services/{servicesId}:setIamPolicy", 7985 // "httpMethod": "POST", 7986 // "id": "servicemanagement.services.setIamPolicy", 7987 // "parameterOrder": [ 7988 // "resource" 7989 // ], 7990 // "parameters": { 7991 // "resource": { 7992 // "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", 7993 // "location": "path", 7994 // "pattern": "^services/[^/]+$", 7995 // "required": true, 7996 // "type": "string" 7997 // } 7998 // }, 7999 // "path": "v1/{+resource}:setIamPolicy", 8000 // "request": { 8001 // "$ref": "SetIamPolicyRequest" 8002 // }, 8003 // "response": { 8004 // "$ref": "Policy" 8005 // }, 8006 // "scopes": [ 8007 // "https://www.googleapis.com/auth/cloud-platform", 8008 // "https://www.googleapis.com/auth/service.management" 8009 // ] 8010 // } 8011 8012} 8013 8014// method id "servicemanagement.services.testIamPermissions": 8015 8016type ServicesTestIamPermissionsCall struct { 8017 s *APIService 8018 resource string 8019 testiampermissionsrequest *TestIamPermissionsRequest 8020 urlParams_ gensupport.URLParams 8021 ctx_ context.Context 8022 header_ http.Header 8023} 8024 8025// TestIamPermissions: Returns permissions that a caller has on the 8026// specified resource. 8027// If the resource does not exist, this will return an empty set 8028// of 8029// permissions, not a NOT_FOUND error. 8030// 8031// Note: This operation is designed to be used for building 8032// permission-aware 8033// UIs and command-line tools, not for authorization checking. This 8034// operation 8035// may "fail open" without warning. 8036func (r *ServicesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ServicesTestIamPermissionsCall { 8037 c := &ServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8038 c.resource = resource 8039 c.testiampermissionsrequest = testiampermissionsrequest 8040 return c 8041} 8042 8043// Fields allows partial responses to be retrieved. See 8044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8045// for more information. 8046func (c *ServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServicesTestIamPermissionsCall { 8047 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8048 return c 8049} 8050 8051// Context sets the context to be used in this call's Do method. Any 8052// pending HTTP request will be aborted if the provided context is 8053// canceled. 8054func (c *ServicesTestIamPermissionsCall) Context(ctx context.Context) *ServicesTestIamPermissionsCall { 8055 c.ctx_ = ctx 8056 return c 8057} 8058 8059// Header returns an http.Header that can be modified by the caller to 8060// add HTTP headers to the request. 8061func (c *ServicesTestIamPermissionsCall) Header() http.Header { 8062 if c.header_ == nil { 8063 c.header_ = make(http.Header) 8064 } 8065 return c.header_ 8066} 8067 8068func (c *ServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { 8069 reqHeaders := make(http.Header) 8070 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8071 for k, v := range c.header_ { 8072 reqHeaders[k] = v 8073 } 8074 reqHeaders.Set("User-Agent", c.s.userAgent()) 8075 var body io.Reader = nil 8076 body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest) 8077 if err != nil { 8078 return nil, err 8079 } 8080 reqHeaders.Set("Content-Type", "application/json") 8081 c.urlParams_.Set("alt", alt) 8082 c.urlParams_.Set("prettyPrint", "false") 8083 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions") 8084 urls += "?" + c.urlParams_.Encode() 8085 req, err := http.NewRequest("POST", urls, body) 8086 if err != nil { 8087 return nil, err 8088 } 8089 req.Header = reqHeaders 8090 googleapi.Expand(req.URL, map[string]string{ 8091 "resource": c.resource, 8092 }) 8093 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8094} 8095 8096// Do executes the "servicemanagement.services.testIamPermissions" call. 8097// Exactly one of *TestIamPermissionsResponse or error will be non-nil. 8098// Any non-2xx status code is an error. Response headers are in either 8099// *TestIamPermissionsResponse.ServerResponse.Header or (if a response 8100// was returned at all) in error.(*googleapi.Error).Header. Use 8101// googleapi.IsNotModified to check whether the returned error was 8102// because http.StatusNotModified was returned. 8103func (c *ServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) { 8104 gensupport.SetOptions(c.urlParams_, opts...) 8105 res, err := c.doRequest("json") 8106 if res != nil && res.StatusCode == http.StatusNotModified { 8107 if res.Body != nil { 8108 res.Body.Close() 8109 } 8110 return nil, &googleapi.Error{ 8111 Code: res.StatusCode, 8112 Header: res.Header, 8113 } 8114 } 8115 if err != nil { 8116 return nil, err 8117 } 8118 defer googleapi.CloseBody(res) 8119 if err := googleapi.CheckResponse(res); err != nil { 8120 return nil, err 8121 } 8122 ret := &TestIamPermissionsResponse{ 8123 ServerResponse: googleapi.ServerResponse{ 8124 Header: res.Header, 8125 HTTPStatusCode: res.StatusCode, 8126 }, 8127 } 8128 target := &ret 8129 if err := gensupport.DecodeResponse(target, res); err != nil { 8130 return nil, err 8131 } 8132 return ret, nil 8133 // { 8134 // "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", 8135 // "flatPath": "v1/services/{servicesId}:testIamPermissions", 8136 // "httpMethod": "POST", 8137 // "id": "servicemanagement.services.testIamPermissions", 8138 // "parameterOrder": [ 8139 // "resource" 8140 // ], 8141 // "parameters": { 8142 // "resource": { 8143 // "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", 8144 // "location": "path", 8145 // "pattern": "^services/[^/]+$", 8146 // "required": true, 8147 // "type": "string" 8148 // } 8149 // }, 8150 // "path": "v1/{+resource}:testIamPermissions", 8151 // "request": { 8152 // "$ref": "TestIamPermissionsRequest" 8153 // }, 8154 // "response": { 8155 // "$ref": "TestIamPermissionsResponse" 8156 // }, 8157 // "scopes": [ 8158 // "https://www.googleapis.com/auth/cloud-platform", 8159 // "https://www.googleapis.com/auth/cloud-platform.read-only", 8160 // "https://www.googleapis.com/auth/service.management", 8161 // "https://www.googleapis.com/auth/service.management.readonly" 8162 // ] 8163 // } 8164 8165} 8166 8167// method id "servicemanagement.services.undelete": 8168 8169type ServicesUndeleteCall struct { 8170 s *APIService 8171 serviceName string 8172 urlParams_ gensupport.URLParams 8173 ctx_ context.Context 8174 header_ http.Header 8175} 8176 8177// Undelete: Revives a previously deleted managed service. The method 8178// restores the 8179// service using the configuration at the time the service was 8180// deleted. 8181// The target service must exist and must have been deleted within 8182// the 8183// last 30 days. 8184// 8185// Operation<response: UndeleteServiceResponse> 8186func (r *ServicesService) Undelete(serviceName string) *ServicesUndeleteCall { 8187 c := &ServicesUndeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8188 c.serviceName = serviceName 8189 return c 8190} 8191 8192// Fields allows partial responses to be retrieved. See 8193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8194// for more information. 8195func (c *ServicesUndeleteCall) Fields(s ...googleapi.Field) *ServicesUndeleteCall { 8196 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8197 return c 8198} 8199 8200// Context sets the context to be used in this call's Do method. Any 8201// pending HTTP request will be aborted if the provided context is 8202// canceled. 8203func (c *ServicesUndeleteCall) Context(ctx context.Context) *ServicesUndeleteCall { 8204 c.ctx_ = ctx 8205 return c 8206} 8207 8208// Header returns an http.Header that can be modified by the caller to 8209// add HTTP headers to the request. 8210func (c *ServicesUndeleteCall) Header() http.Header { 8211 if c.header_ == nil { 8212 c.header_ = make(http.Header) 8213 } 8214 return c.header_ 8215} 8216 8217func (c *ServicesUndeleteCall) doRequest(alt string) (*http.Response, error) { 8218 reqHeaders := make(http.Header) 8219 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8220 for k, v := range c.header_ { 8221 reqHeaders[k] = v 8222 } 8223 reqHeaders.Set("User-Agent", c.s.userAgent()) 8224 var body io.Reader = nil 8225 c.urlParams_.Set("alt", alt) 8226 c.urlParams_.Set("prettyPrint", "false") 8227 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}:undelete") 8228 urls += "?" + c.urlParams_.Encode() 8229 req, err := http.NewRequest("POST", urls, body) 8230 if err != nil { 8231 return nil, err 8232 } 8233 req.Header = reqHeaders 8234 googleapi.Expand(req.URL, map[string]string{ 8235 "serviceName": c.serviceName, 8236 }) 8237 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8238} 8239 8240// Do executes the "servicemanagement.services.undelete" call. 8241// Exactly one of *Operation or error will be non-nil. Any non-2xx 8242// status code is an error. Response headers are in either 8243// *Operation.ServerResponse.Header or (if a response was returned at 8244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 8245// to check whether the returned error was because 8246// http.StatusNotModified was returned. 8247func (c *ServicesUndeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 8248 gensupport.SetOptions(c.urlParams_, opts...) 8249 res, err := c.doRequest("json") 8250 if res != nil && res.StatusCode == http.StatusNotModified { 8251 if res.Body != nil { 8252 res.Body.Close() 8253 } 8254 return nil, &googleapi.Error{ 8255 Code: res.StatusCode, 8256 Header: res.Header, 8257 } 8258 } 8259 if err != nil { 8260 return nil, err 8261 } 8262 defer googleapi.CloseBody(res) 8263 if err := googleapi.CheckResponse(res); err != nil { 8264 return nil, err 8265 } 8266 ret := &Operation{ 8267 ServerResponse: googleapi.ServerResponse{ 8268 Header: res.Header, 8269 HTTPStatusCode: res.StatusCode, 8270 }, 8271 } 8272 target := &ret 8273 if err := gensupport.DecodeResponse(target, res); err != nil { 8274 return nil, err 8275 } 8276 return ret, nil 8277 // { 8278 // "description": "Revives a previously deleted managed service. The method restores the\nservice using the configuration at the time the service was deleted.\nThe target service must exist and must have been deleted within the\nlast 30 days.\n\nOperation\u003cresponse: UndeleteServiceResponse\u003e", 8279 // "flatPath": "v1/services/{serviceName}:undelete", 8280 // "httpMethod": "POST", 8281 // "id": "servicemanagement.services.undelete", 8282 // "parameterOrder": [ 8283 // "serviceName" 8284 // ], 8285 // "parameters": { 8286 // "serviceName": { 8287 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 8288 // "location": "path", 8289 // "required": true, 8290 // "type": "string" 8291 // } 8292 // }, 8293 // "path": "v1/services/{serviceName}:undelete", 8294 // "response": { 8295 // "$ref": "Operation" 8296 // }, 8297 // "scopes": [ 8298 // "https://www.googleapis.com/auth/cloud-platform", 8299 // "https://www.googleapis.com/auth/service.management" 8300 // ] 8301 // } 8302 8303} 8304 8305// method id "servicemanagement.services.configs.create": 8306 8307type ServicesConfigsCreateCall struct { 8308 s *APIService 8309 serviceName string 8310 service *Service 8311 urlParams_ gensupport.URLParams 8312 ctx_ context.Context 8313 header_ http.Header 8314} 8315 8316// Create: Creates a new service configuration (version) for a managed 8317// service. 8318// This method only stores the service configuration. To roll out the 8319// service 8320// configuration to backend systems please 8321// call 8322// CreateServiceRollout. 8323// 8324// Only the 100 most recent service configurations and ones referenced 8325// by 8326// existing rollouts are kept for each service. The rest will be 8327// deleted 8328// eventually. 8329func (r *ServicesConfigsService) Create(serviceName string, service *Service) *ServicesConfigsCreateCall { 8330 c := &ServicesConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8331 c.serviceName = serviceName 8332 c.service = service 8333 return c 8334} 8335 8336// Fields allows partial responses to be retrieved. See 8337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8338// for more information. 8339func (c *ServicesConfigsCreateCall) Fields(s ...googleapi.Field) *ServicesConfigsCreateCall { 8340 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8341 return c 8342} 8343 8344// Context sets the context to be used in this call's Do method. Any 8345// pending HTTP request will be aborted if the provided context is 8346// canceled. 8347func (c *ServicesConfigsCreateCall) Context(ctx context.Context) *ServicesConfigsCreateCall { 8348 c.ctx_ = ctx 8349 return c 8350} 8351 8352// Header returns an http.Header that can be modified by the caller to 8353// add HTTP headers to the request. 8354func (c *ServicesConfigsCreateCall) Header() http.Header { 8355 if c.header_ == nil { 8356 c.header_ = make(http.Header) 8357 } 8358 return c.header_ 8359} 8360 8361func (c *ServicesConfigsCreateCall) doRequest(alt string) (*http.Response, error) { 8362 reqHeaders := make(http.Header) 8363 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8364 for k, v := range c.header_ { 8365 reqHeaders[k] = v 8366 } 8367 reqHeaders.Set("User-Agent", c.s.userAgent()) 8368 var body io.Reader = nil 8369 body, err := googleapi.WithoutDataWrapper.JSONReader(c.service) 8370 if err != nil { 8371 return nil, err 8372 } 8373 reqHeaders.Set("Content-Type", "application/json") 8374 c.urlParams_.Set("alt", alt) 8375 c.urlParams_.Set("prettyPrint", "false") 8376 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs") 8377 urls += "?" + c.urlParams_.Encode() 8378 req, err := http.NewRequest("POST", urls, body) 8379 if err != nil { 8380 return nil, err 8381 } 8382 req.Header = reqHeaders 8383 googleapi.Expand(req.URL, map[string]string{ 8384 "serviceName": c.serviceName, 8385 }) 8386 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8387} 8388 8389// Do executes the "servicemanagement.services.configs.create" call. 8390// Exactly one of *Service or error will be non-nil. Any non-2xx status 8391// code is an error. Response headers are in either 8392// *Service.ServerResponse.Header or (if a response was returned at all) 8393// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 8394// check whether the returned error was because http.StatusNotModified 8395// was returned. 8396func (c *ServicesConfigsCreateCall) Do(opts ...googleapi.CallOption) (*Service, error) { 8397 gensupport.SetOptions(c.urlParams_, opts...) 8398 res, err := c.doRequest("json") 8399 if res != nil && res.StatusCode == http.StatusNotModified { 8400 if res.Body != nil { 8401 res.Body.Close() 8402 } 8403 return nil, &googleapi.Error{ 8404 Code: res.StatusCode, 8405 Header: res.Header, 8406 } 8407 } 8408 if err != nil { 8409 return nil, err 8410 } 8411 defer googleapi.CloseBody(res) 8412 if err := googleapi.CheckResponse(res); err != nil { 8413 return nil, err 8414 } 8415 ret := &Service{ 8416 ServerResponse: googleapi.ServerResponse{ 8417 Header: res.Header, 8418 HTTPStatusCode: res.StatusCode, 8419 }, 8420 } 8421 target := &ret 8422 if err := gensupport.DecodeResponse(target, res); err != nil { 8423 return nil, err 8424 } 8425 return ret, nil 8426 // { 8427 // "description": "Creates a new service configuration (version) for a managed service.\nThis method only stores the service configuration. To roll out the service\nconfiguration to backend systems please call\nCreateServiceRollout.\n\nOnly the 100 most recent service configurations and ones referenced by\nexisting rollouts are kept for each service. The rest will be deleted\neventually.", 8428 // "flatPath": "v1/services/{serviceName}/configs", 8429 // "httpMethod": "POST", 8430 // "id": "servicemanagement.services.configs.create", 8431 // "parameterOrder": [ 8432 // "serviceName" 8433 // ], 8434 // "parameters": { 8435 // "serviceName": { 8436 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 8437 // "location": "path", 8438 // "required": true, 8439 // "type": "string" 8440 // } 8441 // }, 8442 // "path": "v1/services/{serviceName}/configs", 8443 // "request": { 8444 // "$ref": "Service" 8445 // }, 8446 // "response": { 8447 // "$ref": "Service" 8448 // }, 8449 // "scopes": [ 8450 // "https://www.googleapis.com/auth/cloud-platform", 8451 // "https://www.googleapis.com/auth/service.management" 8452 // ] 8453 // } 8454 8455} 8456 8457// method id "servicemanagement.services.configs.get": 8458 8459type ServicesConfigsGetCall struct { 8460 s *APIService 8461 serviceName string 8462 configId string 8463 urlParams_ gensupport.URLParams 8464 ifNoneMatch_ string 8465 ctx_ context.Context 8466 header_ http.Header 8467} 8468 8469// Get: Gets a service configuration (version) for a managed service. 8470func (r *ServicesConfigsService) Get(serviceName string, configId string) *ServicesConfigsGetCall { 8471 c := &ServicesConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8472 c.serviceName = serviceName 8473 c.configId = configId 8474 return c 8475} 8476 8477// View sets the optional parameter "view": Specifies which parts of the 8478// Service Config should be returned in the 8479// response. 8480// 8481// Possible values: 8482// "BASIC" 8483// "FULL" 8484func (c *ServicesConfigsGetCall) View(view string) *ServicesConfigsGetCall { 8485 c.urlParams_.Set("view", view) 8486 return c 8487} 8488 8489// Fields allows partial responses to be retrieved. See 8490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8491// for more information. 8492func (c *ServicesConfigsGetCall) Fields(s ...googleapi.Field) *ServicesConfigsGetCall { 8493 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8494 return c 8495} 8496 8497// IfNoneMatch sets the optional parameter which makes the operation 8498// fail if the object's ETag matches the given value. This is useful for 8499// getting updates only after the object has changed since the last 8500// request. Use googleapi.IsNotModified to check whether the response 8501// error from Do is the result of In-None-Match. 8502func (c *ServicesConfigsGetCall) IfNoneMatch(entityTag string) *ServicesConfigsGetCall { 8503 c.ifNoneMatch_ = entityTag 8504 return c 8505} 8506 8507// Context sets the context to be used in this call's Do method. Any 8508// pending HTTP request will be aborted if the provided context is 8509// canceled. 8510func (c *ServicesConfigsGetCall) Context(ctx context.Context) *ServicesConfigsGetCall { 8511 c.ctx_ = ctx 8512 return c 8513} 8514 8515// Header returns an http.Header that can be modified by the caller to 8516// add HTTP headers to the request. 8517func (c *ServicesConfigsGetCall) Header() http.Header { 8518 if c.header_ == nil { 8519 c.header_ = make(http.Header) 8520 } 8521 return c.header_ 8522} 8523 8524func (c *ServicesConfigsGetCall) doRequest(alt string) (*http.Response, error) { 8525 reqHeaders := make(http.Header) 8526 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8527 for k, v := range c.header_ { 8528 reqHeaders[k] = v 8529 } 8530 reqHeaders.Set("User-Agent", c.s.userAgent()) 8531 if c.ifNoneMatch_ != "" { 8532 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 8533 } 8534 var body io.Reader = nil 8535 c.urlParams_.Set("alt", alt) 8536 c.urlParams_.Set("prettyPrint", "false") 8537 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs/{configId}") 8538 urls += "?" + c.urlParams_.Encode() 8539 req, err := http.NewRequest("GET", urls, body) 8540 if err != nil { 8541 return nil, err 8542 } 8543 req.Header = reqHeaders 8544 googleapi.Expand(req.URL, map[string]string{ 8545 "serviceName": c.serviceName, 8546 "configId": c.configId, 8547 }) 8548 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8549} 8550 8551// Do executes the "servicemanagement.services.configs.get" call. 8552// Exactly one of *Service or error will be non-nil. Any non-2xx status 8553// code is an error. Response headers are in either 8554// *Service.ServerResponse.Header or (if a response was returned at all) 8555// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 8556// check whether the returned error was because http.StatusNotModified 8557// was returned. 8558func (c *ServicesConfigsGetCall) Do(opts ...googleapi.CallOption) (*Service, error) { 8559 gensupport.SetOptions(c.urlParams_, opts...) 8560 res, err := c.doRequest("json") 8561 if res != nil && res.StatusCode == http.StatusNotModified { 8562 if res.Body != nil { 8563 res.Body.Close() 8564 } 8565 return nil, &googleapi.Error{ 8566 Code: res.StatusCode, 8567 Header: res.Header, 8568 } 8569 } 8570 if err != nil { 8571 return nil, err 8572 } 8573 defer googleapi.CloseBody(res) 8574 if err := googleapi.CheckResponse(res); err != nil { 8575 return nil, err 8576 } 8577 ret := &Service{ 8578 ServerResponse: googleapi.ServerResponse{ 8579 Header: res.Header, 8580 HTTPStatusCode: res.StatusCode, 8581 }, 8582 } 8583 target := &ret 8584 if err := gensupport.DecodeResponse(target, res); err != nil { 8585 return nil, err 8586 } 8587 return ret, nil 8588 // { 8589 // "description": "Gets a service configuration (version) for a managed service.", 8590 // "flatPath": "v1/services/{serviceName}/configs/{configId}", 8591 // "httpMethod": "GET", 8592 // "id": "servicemanagement.services.configs.get", 8593 // "parameterOrder": [ 8594 // "serviceName", 8595 // "configId" 8596 // ], 8597 // "parameters": { 8598 // "configId": { 8599 // "description": "Required. The id of the service configuration resource.\n\nThis field must be specified for the server to return all fields, including\n`SourceInfo`.", 8600 // "location": "path", 8601 // "required": true, 8602 // "type": "string" 8603 // }, 8604 // "serviceName": { 8605 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 8606 // "location": "path", 8607 // "required": true, 8608 // "type": "string" 8609 // }, 8610 // "view": { 8611 // "description": "Specifies which parts of the Service Config should be returned in the\nresponse.", 8612 // "enum": [ 8613 // "BASIC", 8614 // "FULL" 8615 // ], 8616 // "location": "query", 8617 // "type": "string" 8618 // } 8619 // }, 8620 // "path": "v1/services/{serviceName}/configs/{configId}", 8621 // "response": { 8622 // "$ref": "Service" 8623 // }, 8624 // "scopes": [ 8625 // "https://www.googleapis.com/auth/cloud-platform", 8626 // "https://www.googleapis.com/auth/cloud-platform.read-only", 8627 // "https://www.googleapis.com/auth/service.management", 8628 // "https://www.googleapis.com/auth/service.management.readonly" 8629 // ] 8630 // } 8631 8632} 8633 8634// method id "servicemanagement.services.configs.list": 8635 8636type ServicesConfigsListCall struct { 8637 s *APIService 8638 serviceName string 8639 urlParams_ gensupport.URLParams 8640 ifNoneMatch_ string 8641 ctx_ context.Context 8642 header_ http.Header 8643} 8644 8645// List: Lists the history of the service configuration for a managed 8646// service, 8647// from the newest to the oldest. 8648func (r *ServicesConfigsService) List(serviceName string) *ServicesConfigsListCall { 8649 c := &ServicesConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8650 c.serviceName = serviceName 8651 return c 8652} 8653 8654// PageSize sets the optional parameter "pageSize": The max number of 8655// items to include in the response list. Page size is 50 8656// if not specified. Maximum value is 100. 8657func (c *ServicesConfigsListCall) PageSize(pageSize int64) *ServicesConfigsListCall { 8658 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 8659 return c 8660} 8661 8662// PageToken sets the optional parameter "pageToken": The token of the 8663// page to retrieve. 8664func (c *ServicesConfigsListCall) PageToken(pageToken string) *ServicesConfigsListCall { 8665 c.urlParams_.Set("pageToken", pageToken) 8666 return c 8667} 8668 8669// Fields allows partial responses to be retrieved. See 8670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8671// for more information. 8672func (c *ServicesConfigsListCall) Fields(s ...googleapi.Field) *ServicesConfigsListCall { 8673 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8674 return c 8675} 8676 8677// IfNoneMatch sets the optional parameter which makes the operation 8678// fail if the object's ETag matches the given value. This is useful for 8679// getting updates only after the object has changed since the last 8680// request. Use googleapi.IsNotModified to check whether the response 8681// error from Do is the result of In-None-Match. 8682func (c *ServicesConfigsListCall) IfNoneMatch(entityTag string) *ServicesConfigsListCall { 8683 c.ifNoneMatch_ = entityTag 8684 return c 8685} 8686 8687// Context sets the context to be used in this call's Do method. Any 8688// pending HTTP request will be aborted if the provided context is 8689// canceled. 8690func (c *ServicesConfigsListCall) Context(ctx context.Context) *ServicesConfigsListCall { 8691 c.ctx_ = ctx 8692 return c 8693} 8694 8695// Header returns an http.Header that can be modified by the caller to 8696// add HTTP headers to the request. 8697func (c *ServicesConfigsListCall) Header() http.Header { 8698 if c.header_ == nil { 8699 c.header_ = make(http.Header) 8700 } 8701 return c.header_ 8702} 8703 8704func (c *ServicesConfigsListCall) doRequest(alt string) (*http.Response, error) { 8705 reqHeaders := make(http.Header) 8706 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8707 for k, v := range c.header_ { 8708 reqHeaders[k] = v 8709 } 8710 reqHeaders.Set("User-Agent", c.s.userAgent()) 8711 if c.ifNoneMatch_ != "" { 8712 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 8713 } 8714 var body io.Reader = nil 8715 c.urlParams_.Set("alt", alt) 8716 c.urlParams_.Set("prettyPrint", "false") 8717 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs") 8718 urls += "?" + c.urlParams_.Encode() 8719 req, err := http.NewRequest("GET", urls, body) 8720 if err != nil { 8721 return nil, err 8722 } 8723 req.Header = reqHeaders 8724 googleapi.Expand(req.URL, map[string]string{ 8725 "serviceName": c.serviceName, 8726 }) 8727 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8728} 8729 8730// Do executes the "servicemanagement.services.configs.list" call. 8731// Exactly one of *ListServiceConfigsResponse or error will be non-nil. 8732// Any non-2xx status code is an error. Response headers are in either 8733// *ListServiceConfigsResponse.ServerResponse.Header or (if a response 8734// was returned at all) in error.(*googleapi.Error).Header. Use 8735// googleapi.IsNotModified to check whether the returned error was 8736// because http.StatusNotModified was returned. 8737func (c *ServicesConfigsListCall) Do(opts ...googleapi.CallOption) (*ListServiceConfigsResponse, error) { 8738 gensupport.SetOptions(c.urlParams_, opts...) 8739 res, err := c.doRequest("json") 8740 if res != nil && res.StatusCode == http.StatusNotModified { 8741 if res.Body != nil { 8742 res.Body.Close() 8743 } 8744 return nil, &googleapi.Error{ 8745 Code: res.StatusCode, 8746 Header: res.Header, 8747 } 8748 } 8749 if err != nil { 8750 return nil, err 8751 } 8752 defer googleapi.CloseBody(res) 8753 if err := googleapi.CheckResponse(res); err != nil { 8754 return nil, err 8755 } 8756 ret := &ListServiceConfigsResponse{ 8757 ServerResponse: googleapi.ServerResponse{ 8758 Header: res.Header, 8759 HTTPStatusCode: res.StatusCode, 8760 }, 8761 } 8762 target := &ret 8763 if err := gensupport.DecodeResponse(target, res); err != nil { 8764 return nil, err 8765 } 8766 return ret, nil 8767 // { 8768 // "description": "Lists the history of the service configuration for a managed service,\nfrom the newest to the oldest.", 8769 // "flatPath": "v1/services/{serviceName}/configs", 8770 // "httpMethod": "GET", 8771 // "id": "servicemanagement.services.configs.list", 8772 // "parameterOrder": [ 8773 // "serviceName" 8774 // ], 8775 // "parameters": { 8776 // "pageSize": { 8777 // "description": "The max number of items to include in the response list. Page size is 50\nif not specified. Maximum value is 100.", 8778 // "format": "int32", 8779 // "location": "query", 8780 // "type": "integer" 8781 // }, 8782 // "pageToken": { 8783 // "description": "The token of the page to retrieve.", 8784 // "location": "query", 8785 // "type": "string" 8786 // }, 8787 // "serviceName": { 8788 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 8789 // "location": "path", 8790 // "required": true, 8791 // "type": "string" 8792 // } 8793 // }, 8794 // "path": "v1/services/{serviceName}/configs", 8795 // "response": { 8796 // "$ref": "ListServiceConfigsResponse" 8797 // }, 8798 // "scopes": [ 8799 // "https://www.googleapis.com/auth/cloud-platform", 8800 // "https://www.googleapis.com/auth/cloud-platform.read-only", 8801 // "https://www.googleapis.com/auth/service.management", 8802 // "https://www.googleapis.com/auth/service.management.readonly" 8803 // ] 8804 // } 8805 8806} 8807 8808// Pages invokes f for each page of results. 8809// A non-nil error returned from f will halt the iteration. 8810// The provided context supersedes any context provided to the Context method. 8811func (c *ServicesConfigsListCall) Pages(ctx context.Context, f func(*ListServiceConfigsResponse) error) error { 8812 c.ctx_ = ctx 8813 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 8814 for { 8815 x, err := c.Do() 8816 if err != nil { 8817 return err 8818 } 8819 if err := f(x); err != nil { 8820 return err 8821 } 8822 if x.NextPageToken == "" { 8823 return nil 8824 } 8825 c.PageToken(x.NextPageToken) 8826 } 8827} 8828 8829// method id "servicemanagement.services.configs.submit": 8830 8831type ServicesConfigsSubmitCall struct { 8832 s *APIService 8833 serviceName string 8834 submitconfigsourcerequest *SubmitConfigSourceRequest 8835 urlParams_ gensupport.URLParams 8836 ctx_ context.Context 8837 header_ http.Header 8838} 8839 8840// Submit: Creates a new service configuration (version) for a managed 8841// service based 8842// on 8843// user-supplied configuration source files (for example: 8844// OpenAPI 8845// Specification). This method stores the source configurations as well 8846// as the 8847// generated service configuration. To rollout the service configuration 8848// to 8849// other services, 8850// please call CreateServiceRollout. 8851// 8852// Only the 100 most recent configuration sources and ones referenced 8853// by 8854// existing service configurtions are kept for each service. The rest 8855// will be 8856// deleted eventually. 8857// 8858// Operation<response: SubmitConfigSourceResponse> 8859func (r *ServicesConfigsService) Submit(serviceName string, submitconfigsourcerequest *SubmitConfigSourceRequest) *ServicesConfigsSubmitCall { 8860 c := &ServicesConfigsSubmitCall{s: r.s, urlParams_: make(gensupport.URLParams)} 8861 c.serviceName = serviceName 8862 c.submitconfigsourcerequest = submitconfigsourcerequest 8863 return c 8864} 8865 8866// Fields allows partial responses to be retrieved. See 8867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 8868// for more information. 8869func (c *ServicesConfigsSubmitCall) Fields(s ...googleapi.Field) *ServicesConfigsSubmitCall { 8870 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 8871 return c 8872} 8873 8874// Context sets the context to be used in this call's Do method. Any 8875// pending HTTP request will be aborted if the provided context is 8876// canceled. 8877func (c *ServicesConfigsSubmitCall) Context(ctx context.Context) *ServicesConfigsSubmitCall { 8878 c.ctx_ = ctx 8879 return c 8880} 8881 8882// Header returns an http.Header that can be modified by the caller to 8883// add HTTP headers to the request. 8884func (c *ServicesConfigsSubmitCall) Header() http.Header { 8885 if c.header_ == nil { 8886 c.header_ = make(http.Header) 8887 } 8888 return c.header_ 8889} 8890 8891func (c *ServicesConfigsSubmitCall) doRequest(alt string) (*http.Response, error) { 8892 reqHeaders := make(http.Header) 8893 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 8894 for k, v := range c.header_ { 8895 reqHeaders[k] = v 8896 } 8897 reqHeaders.Set("User-Agent", c.s.userAgent()) 8898 var body io.Reader = nil 8899 body, err := googleapi.WithoutDataWrapper.JSONReader(c.submitconfigsourcerequest) 8900 if err != nil { 8901 return nil, err 8902 } 8903 reqHeaders.Set("Content-Type", "application/json") 8904 c.urlParams_.Set("alt", alt) 8905 c.urlParams_.Set("prettyPrint", "false") 8906 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs:submit") 8907 urls += "?" + c.urlParams_.Encode() 8908 req, err := http.NewRequest("POST", urls, body) 8909 if err != nil { 8910 return nil, err 8911 } 8912 req.Header = reqHeaders 8913 googleapi.Expand(req.URL, map[string]string{ 8914 "serviceName": c.serviceName, 8915 }) 8916 return gensupport.SendRequest(c.ctx_, c.s.client, req) 8917} 8918 8919// Do executes the "servicemanagement.services.configs.submit" call. 8920// Exactly one of *Operation or error will be non-nil. Any non-2xx 8921// status code is an error. Response headers are in either 8922// *Operation.ServerResponse.Header or (if a response was returned at 8923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 8924// to check whether the returned error was because 8925// http.StatusNotModified was returned. 8926func (c *ServicesConfigsSubmitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 8927 gensupport.SetOptions(c.urlParams_, opts...) 8928 res, err := c.doRequest("json") 8929 if res != nil && res.StatusCode == http.StatusNotModified { 8930 if res.Body != nil { 8931 res.Body.Close() 8932 } 8933 return nil, &googleapi.Error{ 8934 Code: res.StatusCode, 8935 Header: res.Header, 8936 } 8937 } 8938 if err != nil { 8939 return nil, err 8940 } 8941 defer googleapi.CloseBody(res) 8942 if err := googleapi.CheckResponse(res); err != nil { 8943 return nil, err 8944 } 8945 ret := &Operation{ 8946 ServerResponse: googleapi.ServerResponse{ 8947 Header: res.Header, 8948 HTTPStatusCode: res.StatusCode, 8949 }, 8950 } 8951 target := &ret 8952 if err := gensupport.DecodeResponse(target, res); err != nil { 8953 return nil, err 8954 } 8955 return ret, nil 8956 // { 8957 // "description": "Creates a new service configuration (version) for a managed service based\non\nuser-supplied configuration source files (for example: OpenAPI\nSpecification). This method stores the source configurations as well as the\ngenerated service configuration. To rollout the service configuration to\nother services,\nplease call CreateServiceRollout.\n\nOnly the 100 most recent configuration sources and ones referenced by\nexisting service configurtions are kept for each service. The rest will be\ndeleted eventually.\n\nOperation\u003cresponse: SubmitConfigSourceResponse\u003e", 8958 // "flatPath": "v1/services/{serviceName}/configs:submit", 8959 // "httpMethod": "POST", 8960 // "id": "servicemanagement.services.configs.submit", 8961 // "parameterOrder": [ 8962 // "serviceName" 8963 // ], 8964 // "parameters": { 8965 // "serviceName": { 8966 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 8967 // "location": "path", 8968 // "required": true, 8969 // "type": "string" 8970 // } 8971 // }, 8972 // "path": "v1/services/{serviceName}/configs:submit", 8973 // "request": { 8974 // "$ref": "SubmitConfigSourceRequest" 8975 // }, 8976 // "response": { 8977 // "$ref": "Operation" 8978 // }, 8979 // "scopes": [ 8980 // "https://www.googleapis.com/auth/cloud-platform", 8981 // "https://www.googleapis.com/auth/service.management" 8982 // ] 8983 // } 8984 8985} 8986 8987// method id "servicemanagement.services.consumers.getIamPolicy": 8988 8989type ServicesConsumersGetIamPolicyCall struct { 8990 s *APIService 8991 resource string 8992 getiampolicyrequest *GetIamPolicyRequest 8993 urlParams_ gensupport.URLParams 8994 ctx_ context.Context 8995 header_ http.Header 8996} 8997 8998// GetIamPolicy: Gets the access control policy for a resource. 8999// Returns an empty policy if the resource exists and does not have a 9000// policy 9001// set. 9002func (r *ServicesConsumersService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ServicesConsumersGetIamPolicyCall { 9003 c := &ServicesConsumersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9004 c.resource = resource 9005 c.getiampolicyrequest = getiampolicyrequest 9006 return c 9007} 9008 9009// Fields allows partial responses to be retrieved. See 9010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9011// for more information. 9012func (c *ServicesConsumersGetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesConsumersGetIamPolicyCall { 9013 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9014 return c 9015} 9016 9017// Context sets the context to be used in this call's Do method. Any 9018// pending HTTP request will be aborted if the provided context is 9019// canceled. 9020func (c *ServicesConsumersGetIamPolicyCall) Context(ctx context.Context) *ServicesConsumersGetIamPolicyCall { 9021 c.ctx_ = ctx 9022 return c 9023} 9024 9025// Header returns an http.Header that can be modified by the caller to 9026// add HTTP headers to the request. 9027func (c *ServicesConsumersGetIamPolicyCall) Header() http.Header { 9028 if c.header_ == nil { 9029 c.header_ = make(http.Header) 9030 } 9031 return c.header_ 9032} 9033 9034func (c *ServicesConsumersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { 9035 reqHeaders := make(http.Header) 9036 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9037 for k, v := range c.header_ { 9038 reqHeaders[k] = v 9039 } 9040 reqHeaders.Set("User-Agent", c.s.userAgent()) 9041 var body io.Reader = nil 9042 body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest) 9043 if err != nil { 9044 return nil, err 9045 } 9046 reqHeaders.Set("Content-Type", "application/json") 9047 c.urlParams_.Set("alt", alt) 9048 c.urlParams_.Set("prettyPrint", "false") 9049 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy") 9050 urls += "?" + c.urlParams_.Encode() 9051 req, err := http.NewRequest("POST", urls, body) 9052 if err != nil { 9053 return nil, err 9054 } 9055 req.Header = reqHeaders 9056 googleapi.Expand(req.URL, map[string]string{ 9057 "resource": c.resource, 9058 }) 9059 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9060} 9061 9062// Do executes the "servicemanagement.services.consumers.getIamPolicy" call. 9063// Exactly one of *Policy or error will be non-nil. Any non-2xx status 9064// code is an error. Response headers are in either 9065// *Policy.ServerResponse.Header or (if a response was returned at all) 9066// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 9067// check whether the returned error was because http.StatusNotModified 9068// was returned. 9069func (c *ServicesConsumersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { 9070 gensupport.SetOptions(c.urlParams_, opts...) 9071 res, err := c.doRequest("json") 9072 if res != nil && res.StatusCode == http.StatusNotModified { 9073 if res.Body != nil { 9074 res.Body.Close() 9075 } 9076 return nil, &googleapi.Error{ 9077 Code: res.StatusCode, 9078 Header: res.Header, 9079 } 9080 } 9081 if err != nil { 9082 return nil, err 9083 } 9084 defer googleapi.CloseBody(res) 9085 if err := googleapi.CheckResponse(res); err != nil { 9086 return nil, err 9087 } 9088 ret := &Policy{ 9089 ServerResponse: googleapi.ServerResponse{ 9090 Header: res.Header, 9091 HTTPStatusCode: res.StatusCode, 9092 }, 9093 } 9094 target := &ret 9095 if err := gensupport.DecodeResponse(target, res); err != nil { 9096 return nil, err 9097 } 9098 return ret, nil 9099 // { 9100 // "description": "Gets the access control policy for a resource.\nReturns an empty policy if the resource exists and does not have a policy\nset.", 9101 // "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:getIamPolicy", 9102 // "httpMethod": "POST", 9103 // "id": "servicemanagement.services.consumers.getIamPolicy", 9104 // "parameterOrder": [ 9105 // "resource" 9106 // ], 9107 // "parameters": { 9108 // "resource": { 9109 // "description": "REQUIRED: The resource for which the policy is being requested.\nSee the operation documentation for the appropriate value for this field.", 9110 // "location": "path", 9111 // "pattern": "^services/[^/]+/consumers/[^/]+$", 9112 // "required": true, 9113 // "type": "string" 9114 // } 9115 // }, 9116 // "path": "v1/{+resource}:getIamPolicy", 9117 // "request": { 9118 // "$ref": "GetIamPolicyRequest" 9119 // }, 9120 // "response": { 9121 // "$ref": "Policy" 9122 // }, 9123 // "scopes": [ 9124 // "https://www.googleapis.com/auth/cloud-platform", 9125 // "https://www.googleapis.com/auth/cloud-platform.read-only", 9126 // "https://www.googleapis.com/auth/service.management", 9127 // "https://www.googleapis.com/auth/service.management.readonly" 9128 // ] 9129 // } 9130 9131} 9132 9133// method id "servicemanagement.services.consumers.setIamPolicy": 9134 9135type ServicesConsumersSetIamPolicyCall struct { 9136 s *APIService 9137 resource string 9138 setiampolicyrequest *SetIamPolicyRequest 9139 urlParams_ gensupport.URLParams 9140 ctx_ context.Context 9141 header_ http.Header 9142} 9143 9144// SetIamPolicy: Sets the access control policy on the specified 9145// resource. Replaces any 9146// existing policy. 9147// 9148// Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and 9149// PERMISSION_DENIED 9150func (r *ServicesConsumersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ServicesConsumersSetIamPolicyCall { 9151 c := &ServicesConsumersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9152 c.resource = resource 9153 c.setiampolicyrequest = setiampolicyrequest 9154 return c 9155} 9156 9157// Fields allows partial responses to be retrieved. See 9158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9159// for more information. 9160func (c *ServicesConsumersSetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesConsumersSetIamPolicyCall { 9161 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9162 return c 9163} 9164 9165// Context sets the context to be used in this call's Do method. Any 9166// pending HTTP request will be aborted if the provided context is 9167// canceled. 9168func (c *ServicesConsumersSetIamPolicyCall) Context(ctx context.Context) *ServicesConsumersSetIamPolicyCall { 9169 c.ctx_ = ctx 9170 return c 9171} 9172 9173// Header returns an http.Header that can be modified by the caller to 9174// add HTTP headers to the request. 9175func (c *ServicesConsumersSetIamPolicyCall) Header() http.Header { 9176 if c.header_ == nil { 9177 c.header_ = make(http.Header) 9178 } 9179 return c.header_ 9180} 9181 9182func (c *ServicesConsumersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { 9183 reqHeaders := make(http.Header) 9184 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9185 for k, v := range c.header_ { 9186 reqHeaders[k] = v 9187 } 9188 reqHeaders.Set("User-Agent", c.s.userAgent()) 9189 var body io.Reader = nil 9190 body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest) 9191 if err != nil { 9192 return nil, err 9193 } 9194 reqHeaders.Set("Content-Type", "application/json") 9195 c.urlParams_.Set("alt", alt) 9196 c.urlParams_.Set("prettyPrint", "false") 9197 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy") 9198 urls += "?" + c.urlParams_.Encode() 9199 req, err := http.NewRequest("POST", urls, body) 9200 if err != nil { 9201 return nil, err 9202 } 9203 req.Header = reqHeaders 9204 googleapi.Expand(req.URL, map[string]string{ 9205 "resource": c.resource, 9206 }) 9207 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9208} 9209 9210// Do executes the "servicemanagement.services.consumers.setIamPolicy" call. 9211// Exactly one of *Policy or error will be non-nil. Any non-2xx status 9212// code is an error. Response headers are in either 9213// *Policy.ServerResponse.Header or (if a response was returned at all) 9214// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 9215// check whether the returned error was because http.StatusNotModified 9216// was returned. 9217func (c *ServicesConsumersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { 9218 gensupport.SetOptions(c.urlParams_, opts...) 9219 res, err := c.doRequest("json") 9220 if res != nil && res.StatusCode == http.StatusNotModified { 9221 if res.Body != nil { 9222 res.Body.Close() 9223 } 9224 return nil, &googleapi.Error{ 9225 Code: res.StatusCode, 9226 Header: res.Header, 9227 } 9228 } 9229 if err != nil { 9230 return nil, err 9231 } 9232 defer googleapi.CloseBody(res) 9233 if err := googleapi.CheckResponse(res); err != nil { 9234 return nil, err 9235 } 9236 ret := &Policy{ 9237 ServerResponse: googleapi.ServerResponse{ 9238 Header: res.Header, 9239 HTTPStatusCode: res.StatusCode, 9240 }, 9241 } 9242 target := &ret 9243 if err := gensupport.DecodeResponse(target, res); err != nil { 9244 return nil, err 9245 } 9246 return ret, nil 9247 // { 9248 // "description": "Sets the access control policy on the specified resource. Replaces any\nexisting policy.\n\nCan return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED", 9249 // "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:setIamPolicy", 9250 // "httpMethod": "POST", 9251 // "id": "servicemanagement.services.consumers.setIamPolicy", 9252 // "parameterOrder": [ 9253 // "resource" 9254 // ], 9255 // "parameters": { 9256 // "resource": { 9257 // "description": "REQUIRED: The resource for which the policy is being specified.\nSee the operation documentation for the appropriate value for this field.", 9258 // "location": "path", 9259 // "pattern": "^services/[^/]+/consumers/[^/]+$", 9260 // "required": true, 9261 // "type": "string" 9262 // } 9263 // }, 9264 // "path": "v1/{+resource}:setIamPolicy", 9265 // "request": { 9266 // "$ref": "SetIamPolicyRequest" 9267 // }, 9268 // "response": { 9269 // "$ref": "Policy" 9270 // }, 9271 // "scopes": [ 9272 // "https://www.googleapis.com/auth/cloud-platform", 9273 // "https://www.googleapis.com/auth/service.management" 9274 // ] 9275 // } 9276 9277} 9278 9279// method id "servicemanagement.services.consumers.testIamPermissions": 9280 9281type ServicesConsumersTestIamPermissionsCall struct { 9282 s *APIService 9283 resource string 9284 testiampermissionsrequest *TestIamPermissionsRequest 9285 urlParams_ gensupport.URLParams 9286 ctx_ context.Context 9287 header_ http.Header 9288} 9289 9290// TestIamPermissions: Returns permissions that a caller has on the 9291// specified resource. 9292// If the resource does not exist, this will return an empty set 9293// of 9294// permissions, not a NOT_FOUND error. 9295// 9296// Note: This operation is designed to be used for building 9297// permission-aware 9298// UIs and command-line tools, not for authorization checking. This 9299// operation 9300// may "fail open" without warning. 9301func (r *ServicesConsumersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ServicesConsumersTestIamPermissionsCall { 9302 c := &ServicesConsumersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9303 c.resource = resource 9304 c.testiampermissionsrequest = testiampermissionsrequest 9305 return c 9306} 9307 9308// Fields allows partial responses to be retrieved. See 9309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9310// for more information. 9311func (c *ServicesConsumersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServicesConsumersTestIamPermissionsCall { 9312 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9313 return c 9314} 9315 9316// Context sets the context to be used in this call's Do method. Any 9317// pending HTTP request will be aborted if the provided context is 9318// canceled. 9319func (c *ServicesConsumersTestIamPermissionsCall) Context(ctx context.Context) *ServicesConsumersTestIamPermissionsCall { 9320 c.ctx_ = ctx 9321 return c 9322} 9323 9324// Header returns an http.Header that can be modified by the caller to 9325// add HTTP headers to the request. 9326func (c *ServicesConsumersTestIamPermissionsCall) Header() http.Header { 9327 if c.header_ == nil { 9328 c.header_ = make(http.Header) 9329 } 9330 return c.header_ 9331} 9332 9333func (c *ServicesConsumersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { 9334 reqHeaders := make(http.Header) 9335 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9336 for k, v := range c.header_ { 9337 reqHeaders[k] = v 9338 } 9339 reqHeaders.Set("User-Agent", c.s.userAgent()) 9340 var body io.Reader = nil 9341 body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest) 9342 if err != nil { 9343 return nil, err 9344 } 9345 reqHeaders.Set("Content-Type", "application/json") 9346 c.urlParams_.Set("alt", alt) 9347 c.urlParams_.Set("prettyPrint", "false") 9348 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions") 9349 urls += "?" + c.urlParams_.Encode() 9350 req, err := http.NewRequest("POST", urls, body) 9351 if err != nil { 9352 return nil, err 9353 } 9354 req.Header = reqHeaders 9355 googleapi.Expand(req.URL, map[string]string{ 9356 "resource": c.resource, 9357 }) 9358 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9359} 9360 9361// Do executes the "servicemanagement.services.consumers.testIamPermissions" call. 9362// Exactly one of *TestIamPermissionsResponse or error will be non-nil. 9363// Any non-2xx status code is an error. Response headers are in either 9364// *TestIamPermissionsResponse.ServerResponse.Header or (if a response 9365// was returned at all) in error.(*googleapi.Error).Header. Use 9366// googleapi.IsNotModified to check whether the returned error was 9367// because http.StatusNotModified was returned. 9368func (c *ServicesConsumersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) { 9369 gensupport.SetOptions(c.urlParams_, opts...) 9370 res, err := c.doRequest("json") 9371 if res != nil && res.StatusCode == http.StatusNotModified { 9372 if res.Body != nil { 9373 res.Body.Close() 9374 } 9375 return nil, &googleapi.Error{ 9376 Code: res.StatusCode, 9377 Header: res.Header, 9378 } 9379 } 9380 if err != nil { 9381 return nil, err 9382 } 9383 defer googleapi.CloseBody(res) 9384 if err := googleapi.CheckResponse(res); err != nil { 9385 return nil, err 9386 } 9387 ret := &TestIamPermissionsResponse{ 9388 ServerResponse: googleapi.ServerResponse{ 9389 Header: res.Header, 9390 HTTPStatusCode: res.StatusCode, 9391 }, 9392 } 9393 target := &ret 9394 if err := gensupport.DecodeResponse(target, res); err != nil { 9395 return nil, err 9396 } 9397 return ret, nil 9398 // { 9399 // "description": "Returns permissions that a caller has on the specified resource.\nIf the resource does not exist, this will return an empty set of\npermissions, not a NOT_FOUND error.\n\nNote: This operation is designed to be used for building permission-aware\nUIs and command-line tools, not for authorization checking. This operation\nmay \"fail open\" without warning.", 9400 // "flatPath": "v1/services/{servicesId}/consumers/{consumersId}:testIamPermissions", 9401 // "httpMethod": "POST", 9402 // "id": "servicemanagement.services.consumers.testIamPermissions", 9403 // "parameterOrder": [ 9404 // "resource" 9405 // ], 9406 // "parameters": { 9407 // "resource": { 9408 // "description": "REQUIRED: The resource for which the policy detail is being requested.\nSee the operation documentation for the appropriate value for this field.", 9409 // "location": "path", 9410 // "pattern": "^services/[^/]+/consumers/[^/]+$", 9411 // "required": true, 9412 // "type": "string" 9413 // } 9414 // }, 9415 // "path": "v1/{+resource}:testIamPermissions", 9416 // "request": { 9417 // "$ref": "TestIamPermissionsRequest" 9418 // }, 9419 // "response": { 9420 // "$ref": "TestIamPermissionsResponse" 9421 // }, 9422 // "scopes": [ 9423 // "https://www.googleapis.com/auth/cloud-platform", 9424 // "https://www.googleapis.com/auth/cloud-platform.read-only", 9425 // "https://www.googleapis.com/auth/service.management", 9426 // "https://www.googleapis.com/auth/service.management.readonly" 9427 // ] 9428 // } 9429 9430} 9431 9432// method id "servicemanagement.services.rollouts.create": 9433 9434type ServicesRolloutsCreateCall struct { 9435 s *APIService 9436 serviceName string 9437 rollout *Rollout 9438 urlParams_ gensupport.URLParams 9439 ctx_ context.Context 9440 header_ http.Header 9441} 9442 9443// Create: Creates a new service configuration rollout. Based on 9444// rollout, the 9445// Google Service Management will roll out the service configurations 9446// to 9447// different backend services. For example, the logging configuration 9448// will be 9449// pushed to Google Cloud Logging. 9450// 9451// Please note that any previous pending and running Rollouts and 9452// associated 9453// Operations will be automatically cancelled so that the latest Rollout 9454// will 9455// not be blocked by previous Rollouts. 9456// 9457// Only the 100 most recent (in any state) and the last 10 successful 9458// (if not 9459// already part of the set of 100 most recent) rollouts are kept for 9460// each 9461// service. The rest will be deleted eventually. 9462// 9463// Operation<response: Rollout> 9464func (r *ServicesRolloutsService) Create(serviceName string, rollout *Rollout) *ServicesRolloutsCreateCall { 9465 c := &ServicesRolloutsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9466 c.serviceName = serviceName 9467 c.rollout = rollout 9468 return c 9469} 9470 9471// Fields allows partial responses to be retrieved. See 9472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9473// for more information. 9474func (c *ServicesRolloutsCreateCall) Fields(s ...googleapi.Field) *ServicesRolloutsCreateCall { 9475 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9476 return c 9477} 9478 9479// Context sets the context to be used in this call's Do method. Any 9480// pending HTTP request will be aborted if the provided context is 9481// canceled. 9482func (c *ServicesRolloutsCreateCall) Context(ctx context.Context) *ServicesRolloutsCreateCall { 9483 c.ctx_ = ctx 9484 return c 9485} 9486 9487// Header returns an http.Header that can be modified by the caller to 9488// add HTTP headers to the request. 9489func (c *ServicesRolloutsCreateCall) Header() http.Header { 9490 if c.header_ == nil { 9491 c.header_ = make(http.Header) 9492 } 9493 return c.header_ 9494} 9495 9496func (c *ServicesRolloutsCreateCall) doRequest(alt string) (*http.Response, error) { 9497 reqHeaders := make(http.Header) 9498 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9499 for k, v := range c.header_ { 9500 reqHeaders[k] = v 9501 } 9502 reqHeaders.Set("User-Agent", c.s.userAgent()) 9503 var body io.Reader = nil 9504 body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollout) 9505 if err != nil { 9506 return nil, err 9507 } 9508 reqHeaders.Set("Content-Type", "application/json") 9509 c.urlParams_.Set("alt", alt) 9510 c.urlParams_.Set("prettyPrint", "false") 9511 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts") 9512 urls += "?" + c.urlParams_.Encode() 9513 req, err := http.NewRequest("POST", urls, body) 9514 if err != nil { 9515 return nil, err 9516 } 9517 req.Header = reqHeaders 9518 googleapi.Expand(req.URL, map[string]string{ 9519 "serviceName": c.serviceName, 9520 }) 9521 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9522} 9523 9524// Do executes the "servicemanagement.services.rollouts.create" call. 9525// Exactly one of *Operation or error will be non-nil. Any non-2xx 9526// status code is an error. Response headers are in either 9527// *Operation.ServerResponse.Header or (if a response was returned at 9528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified 9529// to check whether the returned error was because 9530// http.StatusNotModified was returned. 9531func (c *ServicesRolloutsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { 9532 gensupport.SetOptions(c.urlParams_, opts...) 9533 res, err := c.doRequest("json") 9534 if res != nil && res.StatusCode == http.StatusNotModified { 9535 if res.Body != nil { 9536 res.Body.Close() 9537 } 9538 return nil, &googleapi.Error{ 9539 Code: res.StatusCode, 9540 Header: res.Header, 9541 } 9542 } 9543 if err != nil { 9544 return nil, err 9545 } 9546 defer googleapi.CloseBody(res) 9547 if err := googleapi.CheckResponse(res); err != nil { 9548 return nil, err 9549 } 9550 ret := &Operation{ 9551 ServerResponse: googleapi.ServerResponse{ 9552 Header: res.Header, 9553 HTTPStatusCode: res.StatusCode, 9554 }, 9555 } 9556 target := &ret 9557 if err := gensupport.DecodeResponse(target, res); err != nil { 9558 return nil, err 9559 } 9560 return ret, nil 9561 // { 9562 // "description": "Creates a new service configuration rollout. Based on rollout, the\nGoogle Service Management will roll out the service configurations to\ndifferent backend services. For example, the logging configuration will be\npushed to Google Cloud Logging.\n\nPlease note that any previous pending and running Rollouts and associated\nOperations will be automatically cancelled so that the latest Rollout will\nnot be blocked by previous Rollouts.\n\nOnly the 100 most recent (in any state) and the last 10 successful (if not\nalready part of the set of 100 most recent) rollouts are kept for each\nservice. The rest will be deleted eventually.\n\nOperation\u003cresponse: Rollout\u003e", 9563 // "flatPath": "v1/services/{serviceName}/rollouts", 9564 // "httpMethod": "POST", 9565 // "id": "servicemanagement.services.rollouts.create", 9566 // "parameterOrder": [ 9567 // "serviceName" 9568 // ], 9569 // "parameters": { 9570 // "serviceName": { 9571 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 9572 // "location": "path", 9573 // "required": true, 9574 // "type": "string" 9575 // } 9576 // }, 9577 // "path": "v1/services/{serviceName}/rollouts", 9578 // "request": { 9579 // "$ref": "Rollout" 9580 // }, 9581 // "response": { 9582 // "$ref": "Operation" 9583 // }, 9584 // "scopes": [ 9585 // "https://www.googleapis.com/auth/cloud-platform", 9586 // "https://www.googleapis.com/auth/service.management" 9587 // ] 9588 // } 9589 9590} 9591 9592// method id "servicemanagement.services.rollouts.get": 9593 9594type ServicesRolloutsGetCall struct { 9595 s *APIService 9596 serviceName string 9597 rolloutId string 9598 urlParams_ gensupport.URLParams 9599 ifNoneMatch_ string 9600 ctx_ context.Context 9601 header_ http.Header 9602} 9603 9604// Get: Gets a service configuration rollout. 9605func (r *ServicesRolloutsService) Get(serviceName string, rolloutId string) *ServicesRolloutsGetCall { 9606 c := &ServicesRolloutsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9607 c.serviceName = serviceName 9608 c.rolloutId = rolloutId 9609 return c 9610} 9611 9612// Fields allows partial responses to be retrieved. See 9613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9614// for more information. 9615func (c *ServicesRolloutsGetCall) Fields(s ...googleapi.Field) *ServicesRolloutsGetCall { 9616 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9617 return c 9618} 9619 9620// IfNoneMatch sets the optional parameter which makes the operation 9621// fail if the object's ETag matches the given value. This is useful for 9622// getting updates only after the object has changed since the last 9623// request. Use googleapi.IsNotModified to check whether the response 9624// error from Do is the result of In-None-Match. 9625func (c *ServicesRolloutsGetCall) IfNoneMatch(entityTag string) *ServicesRolloutsGetCall { 9626 c.ifNoneMatch_ = entityTag 9627 return c 9628} 9629 9630// Context sets the context to be used in this call's Do method. Any 9631// pending HTTP request will be aborted if the provided context is 9632// canceled. 9633func (c *ServicesRolloutsGetCall) Context(ctx context.Context) *ServicesRolloutsGetCall { 9634 c.ctx_ = ctx 9635 return c 9636} 9637 9638// Header returns an http.Header that can be modified by the caller to 9639// add HTTP headers to the request. 9640func (c *ServicesRolloutsGetCall) Header() http.Header { 9641 if c.header_ == nil { 9642 c.header_ = make(http.Header) 9643 } 9644 return c.header_ 9645} 9646 9647func (c *ServicesRolloutsGetCall) doRequest(alt string) (*http.Response, error) { 9648 reqHeaders := make(http.Header) 9649 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9650 for k, v := range c.header_ { 9651 reqHeaders[k] = v 9652 } 9653 reqHeaders.Set("User-Agent", c.s.userAgent()) 9654 if c.ifNoneMatch_ != "" { 9655 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 9656 } 9657 var body io.Reader = nil 9658 c.urlParams_.Set("alt", alt) 9659 c.urlParams_.Set("prettyPrint", "false") 9660 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts/{rolloutId}") 9661 urls += "?" + c.urlParams_.Encode() 9662 req, err := http.NewRequest("GET", urls, body) 9663 if err != nil { 9664 return nil, err 9665 } 9666 req.Header = reqHeaders 9667 googleapi.Expand(req.URL, map[string]string{ 9668 "serviceName": c.serviceName, 9669 "rolloutId": c.rolloutId, 9670 }) 9671 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9672} 9673 9674// Do executes the "servicemanagement.services.rollouts.get" call. 9675// Exactly one of *Rollout or error will be non-nil. Any non-2xx status 9676// code is an error. Response headers are in either 9677// *Rollout.ServerResponse.Header or (if a response was returned at all) 9678// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to 9679// check whether the returned error was because http.StatusNotModified 9680// was returned. 9681func (c *ServicesRolloutsGetCall) Do(opts ...googleapi.CallOption) (*Rollout, error) { 9682 gensupport.SetOptions(c.urlParams_, opts...) 9683 res, err := c.doRequest("json") 9684 if res != nil && res.StatusCode == http.StatusNotModified { 9685 if res.Body != nil { 9686 res.Body.Close() 9687 } 9688 return nil, &googleapi.Error{ 9689 Code: res.StatusCode, 9690 Header: res.Header, 9691 } 9692 } 9693 if err != nil { 9694 return nil, err 9695 } 9696 defer googleapi.CloseBody(res) 9697 if err := googleapi.CheckResponse(res); err != nil { 9698 return nil, err 9699 } 9700 ret := &Rollout{ 9701 ServerResponse: googleapi.ServerResponse{ 9702 Header: res.Header, 9703 HTTPStatusCode: res.StatusCode, 9704 }, 9705 } 9706 target := &ret 9707 if err := gensupport.DecodeResponse(target, res); err != nil { 9708 return nil, err 9709 } 9710 return ret, nil 9711 // { 9712 // "description": "Gets a service configuration rollout.", 9713 // "flatPath": "v1/services/{serviceName}/rollouts/{rolloutId}", 9714 // "httpMethod": "GET", 9715 // "id": "servicemanagement.services.rollouts.get", 9716 // "parameterOrder": [ 9717 // "serviceName", 9718 // "rolloutId" 9719 // ], 9720 // "parameters": { 9721 // "rolloutId": { 9722 // "description": "Required. The id of the rollout resource.", 9723 // "location": "path", 9724 // "required": true, 9725 // "type": "string" 9726 // }, 9727 // "serviceName": { 9728 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 9729 // "location": "path", 9730 // "required": true, 9731 // "type": "string" 9732 // } 9733 // }, 9734 // "path": "v1/services/{serviceName}/rollouts/{rolloutId}", 9735 // "response": { 9736 // "$ref": "Rollout" 9737 // }, 9738 // "scopes": [ 9739 // "https://www.googleapis.com/auth/cloud-platform", 9740 // "https://www.googleapis.com/auth/cloud-platform.read-only", 9741 // "https://www.googleapis.com/auth/service.management", 9742 // "https://www.googleapis.com/auth/service.management.readonly" 9743 // ] 9744 // } 9745 9746} 9747 9748// method id "servicemanagement.services.rollouts.list": 9749 9750type ServicesRolloutsListCall struct { 9751 s *APIService 9752 serviceName string 9753 urlParams_ gensupport.URLParams 9754 ifNoneMatch_ string 9755 ctx_ context.Context 9756 header_ http.Header 9757} 9758 9759// List: Lists the history of the service configuration rollouts for a 9760// managed 9761// service, from the newest to the oldest. 9762func (r *ServicesRolloutsService) List(serviceName string) *ServicesRolloutsListCall { 9763 c := &ServicesRolloutsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} 9764 c.serviceName = serviceName 9765 return c 9766} 9767 9768// Filter sets the optional parameter "filter": Required. Use `filter` 9769// to return subset of rollouts. 9770// The following filters are supported: 9771// -- To limit the results to only those in 9772// [status](google.api.servicemanagement.v1.RolloutStatus) 9773// 'SUCCESS', 9774// use filter='status=SUCCESS' 9775// -- To limit the results to those in 9776// [status](google.api.servicemanagement.v1.RolloutStatus) 9777// 'CANCELLED' 9778// or 'FAILED', use filter='status=CANCELLED OR status=FAILED' 9779func (c *ServicesRolloutsListCall) Filter(filter string) *ServicesRolloutsListCall { 9780 c.urlParams_.Set("filter", filter) 9781 return c 9782} 9783 9784// PageSize sets the optional parameter "pageSize": The max number of 9785// items to include in the response list. Page size is 50 9786// if not specified. Maximum value is 100. 9787func (c *ServicesRolloutsListCall) PageSize(pageSize int64) *ServicesRolloutsListCall { 9788 c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) 9789 return c 9790} 9791 9792// PageToken sets the optional parameter "pageToken": The token of the 9793// page to retrieve. 9794func (c *ServicesRolloutsListCall) PageToken(pageToken string) *ServicesRolloutsListCall { 9795 c.urlParams_.Set("pageToken", pageToken) 9796 return c 9797} 9798 9799// Fields allows partial responses to be retrieved. See 9800// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse 9801// for more information. 9802func (c *ServicesRolloutsListCall) Fields(s ...googleapi.Field) *ServicesRolloutsListCall { 9803 c.urlParams_.Set("fields", googleapi.CombineFields(s)) 9804 return c 9805} 9806 9807// IfNoneMatch sets the optional parameter which makes the operation 9808// fail if the object's ETag matches the given value. This is useful for 9809// getting updates only after the object has changed since the last 9810// request. Use googleapi.IsNotModified to check whether the response 9811// error from Do is the result of In-None-Match. 9812func (c *ServicesRolloutsListCall) IfNoneMatch(entityTag string) *ServicesRolloutsListCall { 9813 c.ifNoneMatch_ = entityTag 9814 return c 9815} 9816 9817// Context sets the context to be used in this call's Do method. Any 9818// pending HTTP request will be aborted if the provided context is 9819// canceled. 9820func (c *ServicesRolloutsListCall) Context(ctx context.Context) *ServicesRolloutsListCall { 9821 c.ctx_ = ctx 9822 return c 9823} 9824 9825// Header returns an http.Header that can be modified by the caller to 9826// add HTTP headers to the request. 9827func (c *ServicesRolloutsListCall) Header() http.Header { 9828 if c.header_ == nil { 9829 c.header_ = make(http.Header) 9830 } 9831 return c.header_ 9832} 9833 9834func (c *ServicesRolloutsListCall) doRequest(alt string) (*http.Response, error) { 9835 reqHeaders := make(http.Header) 9836 reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302") 9837 for k, v := range c.header_ { 9838 reqHeaders[k] = v 9839 } 9840 reqHeaders.Set("User-Agent", c.s.userAgent()) 9841 if c.ifNoneMatch_ != "" { 9842 reqHeaders.Set("If-None-Match", c.ifNoneMatch_) 9843 } 9844 var body io.Reader = nil 9845 c.urlParams_.Set("alt", alt) 9846 c.urlParams_.Set("prettyPrint", "false") 9847 urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts") 9848 urls += "?" + c.urlParams_.Encode() 9849 req, err := http.NewRequest("GET", urls, body) 9850 if err != nil { 9851 return nil, err 9852 } 9853 req.Header = reqHeaders 9854 googleapi.Expand(req.URL, map[string]string{ 9855 "serviceName": c.serviceName, 9856 }) 9857 return gensupport.SendRequest(c.ctx_, c.s.client, req) 9858} 9859 9860// Do executes the "servicemanagement.services.rollouts.list" call. 9861// Exactly one of *ListServiceRolloutsResponse or error will be non-nil. 9862// Any non-2xx status code is an error. Response headers are in either 9863// *ListServiceRolloutsResponse.ServerResponse.Header or (if a response 9864// was returned at all) in error.(*googleapi.Error).Header. Use 9865// googleapi.IsNotModified to check whether the returned error was 9866// because http.StatusNotModified was returned. 9867func (c *ServicesRolloutsListCall) Do(opts ...googleapi.CallOption) (*ListServiceRolloutsResponse, error) { 9868 gensupport.SetOptions(c.urlParams_, opts...) 9869 res, err := c.doRequest("json") 9870 if res != nil && res.StatusCode == http.StatusNotModified { 9871 if res.Body != nil { 9872 res.Body.Close() 9873 } 9874 return nil, &googleapi.Error{ 9875 Code: res.StatusCode, 9876 Header: res.Header, 9877 } 9878 } 9879 if err != nil { 9880 return nil, err 9881 } 9882 defer googleapi.CloseBody(res) 9883 if err := googleapi.CheckResponse(res); err != nil { 9884 return nil, err 9885 } 9886 ret := &ListServiceRolloutsResponse{ 9887 ServerResponse: googleapi.ServerResponse{ 9888 Header: res.Header, 9889 HTTPStatusCode: res.StatusCode, 9890 }, 9891 } 9892 target := &ret 9893 if err := gensupport.DecodeResponse(target, res); err != nil { 9894 return nil, err 9895 } 9896 return ret, nil 9897 // { 9898 // "description": "Lists the history of the service configuration rollouts for a managed\nservice, from the newest to the oldest.", 9899 // "flatPath": "v1/services/{serviceName}/rollouts", 9900 // "httpMethod": "GET", 9901 // "id": "servicemanagement.services.rollouts.list", 9902 // "parameterOrder": [ 9903 // "serviceName" 9904 // ], 9905 // "parameters": { 9906 // "filter": { 9907 // "description": "Required. Use `filter` to return subset of rollouts.\nThe following filters are supported:\n -- To limit the results to only those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS',\n use filter='status=SUCCESS'\n -- To limit the results to those in\n [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED'\n or 'FAILED', use filter='status=CANCELLED OR status=FAILED'", 9908 // "location": "query", 9909 // "type": "string" 9910 // }, 9911 // "pageSize": { 9912 // "description": "The max number of items to include in the response list. Page size is 50\nif not specified. Maximum value is 100.", 9913 // "format": "int32", 9914 // "location": "query", 9915 // "type": "integer" 9916 // }, 9917 // "pageToken": { 9918 // "description": "The token of the page to retrieve.", 9919 // "location": "query", 9920 // "type": "string" 9921 // }, 9922 // "serviceName": { 9923 // "description": "Required. The name of the service. See the [overview](/service-management/overview)\nfor naming requirements. For example: `example.googleapis.com`.", 9924 // "location": "path", 9925 // "required": true, 9926 // "type": "string" 9927 // } 9928 // }, 9929 // "path": "v1/services/{serviceName}/rollouts", 9930 // "response": { 9931 // "$ref": "ListServiceRolloutsResponse" 9932 // }, 9933 // "scopes": [ 9934 // "https://www.googleapis.com/auth/cloud-platform", 9935 // "https://www.googleapis.com/auth/cloud-platform.read-only", 9936 // "https://www.googleapis.com/auth/service.management", 9937 // "https://www.googleapis.com/auth/service.management.readonly" 9938 // ] 9939 // } 9940 9941} 9942 9943// Pages invokes f for each page of results. 9944// A non-nil error returned from f will halt the iteration. 9945// The provided context supersedes any context provided to the Context method. 9946func (c *ServicesRolloutsListCall) Pages(ctx context.Context, f func(*ListServiceRolloutsResponse) error) error { 9947 c.ctx_ = ctx 9948 defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point 9949 for { 9950 x, err := c.Do() 9951 if err != nil { 9952 return err 9953 } 9954 if err := f(x); err != nil { 9955 return err 9956 } 9957 if x.NextPageToken == "" { 9958 return nil 9959 } 9960 c.PageToken(x.NextPageToken) 9961 } 9962} 9963