// Copyright 2024 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package servicemanagement provides access to the Service Management API. // // For product documentation, see: https://cloud.google.com/service-management/ // // # Library status // // These client libraries are officially supported by Google. However, this // library is considered complete and is in maintenance mode. This means // that we will address critical bugs and security issues but will not add // any new features. // // When possible, we recommend using our newer // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go) // that are still actively being worked and iterated on. // // # Creating a client // // Usage example: // // import "google.golang.org/api/servicemanagement/v1" // ... // ctx := context.Background() // servicemanagementService, err := servicemanagement.NewService(ctx) // // In this example, Google Application Default Credentials are used for // authentication. For information on how to create and obtain Application // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // # Other authentication options // // By default, all available scopes (see "Constants") are used to authenticate. // To restrict scopes, use [google.golang.org/api/option.WithScopes]: // // servicemanagementService, err := servicemanagement.NewService(ctx, option.WithScopes(servicemanagement.ServiceManagementReadonlyScope)) // // To use an API key for authentication (note: some APIs do not support API // keys), use [google.golang.org/api/option.WithAPIKey]: // // servicemanagementService, err := servicemanagement.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth // flow, use [google.golang.org/api/option.WithTokenSource]: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // servicemanagementService, err := servicemanagement.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See [google.golang.org/api/option.ClientOption] for details on options. package servicemanagement // import "google.golang.org/api/servicemanagement/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint var _ = internal.Version const apiId = "servicemanagement:v1" const apiName = "servicemanagement" const apiVersion = "v1" const basePath = "https://servicemanagement.googleapis.com/" const basePathTemplate = "https://servicemanagement.UNIVERSE_DOMAIN/" const mtlsBasePath = "https://servicemanagement.mtls.googleapis.com/" // OAuth2 scopes used by this API. const ( // See, edit, configure, and delete your Google Cloud data and see the email // address for your Google Account. CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" // View your data across Google Cloud services and see the email address of // your Google Account CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only" // Manage your Google API service configuration ServiceManagementScope = "https://www.googleapis.com/auth/service.management" // View your Google API service configuration ServiceManagementReadonlyScope = "https://www.googleapis.com/auth/service.management.readonly" ) // NewService creates a new APIService. func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) { scopesOption := internaloption.WithDefaultScopes( "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only", "https://www.googleapis.com/auth/service.management", "https://www.googleapis.com/auth/service.management.readonly", ) // NOTE: prepend, so we don't override user-specified scopes. opts = append([]option.ClientOption{scopesOption}, opts...) opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) opts = append(opts, internaloption.EnableNewAuthLibrary()) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new APIService. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*APIService, error) { if client == nil { return nil, errors.New("client is nil") } s := &APIService{client: client, BasePath: basePath} s.Operations = NewOperationsService(s) s.Services = NewServicesService(s) return s, nil } type APIService struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Operations *OperationsService Services *ServicesService } func (s *APIService) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewOperationsService(s *APIService) *OperationsService { rs := &OperationsService{s: s} return rs } type OperationsService struct { s *APIService } func NewServicesService(s *APIService) *ServicesService { rs := &ServicesService{s: s} rs.Configs = NewServicesConfigsService(s) rs.Consumers = NewServicesConsumersService(s) rs.Rollouts = NewServicesRolloutsService(s) return rs } type ServicesService struct { s *APIService Configs *ServicesConfigsService Consumers *ServicesConsumersService Rollouts *ServicesRolloutsService } func NewServicesConfigsService(s *APIService) *ServicesConfigsService { rs := &ServicesConfigsService{s: s} return rs } type ServicesConfigsService struct { s *APIService } func NewServicesConsumersService(s *APIService) *ServicesConsumersService { rs := &ServicesConsumersService{s: s} return rs } type ServicesConsumersService struct { s *APIService } func NewServicesRolloutsService(s *APIService) *ServicesRolloutsService { rs := &ServicesRolloutsService{s: s} return rs } type ServicesRolloutsService struct { s *APIService } // Advice: Generated advice about this change, used for providing more // information about how a change will affect the existing service. type Advice struct { // Description: Useful description for why this advice was applied and what // actions should be taken to mitigate any implied risks. Description string `json:"description,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Advice) MarshalJSON() ([]byte, error) { type NoMethod Advice return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Api: Api is a light-weight descriptor for an API Interface. Interfaces are // also described as "protocol buffer services" in some contexts, such as by // the "service" keyword in a .proto file, but they are different from API // Services, which represent a concrete implementation of an interface as // opposed to simply a description of methods and bindings. They are also // sometimes simply referred to as "APIs" in other contexts, such as the name // of this message itself. See https://cloud.google.com/apis/design/glossary // for detailed terminology. type Api struct { // Methods: The methods of this interface, in unspecified order. Methods []*Method `json:"methods,omitempty"` // Mixins: Included interfaces. See Mixin. Mixins []*Mixin `json:"mixins,omitempty"` // Name: The fully qualified name of this interface, including package name // followed by the interface's simple name. Name string `json:"name,omitempty"` // Options: Any metadata attached to the interface. Options []*Option `json:"options,omitempty"` // SourceContext: Source context for the protocol buffer service represented by // this message. SourceContext *SourceContext `json:"sourceContext,omitempty"` // Syntax: The source syntax of the service. // // Possible values: // "SYNTAX_PROTO2" - Syntax `proto2`. // "SYNTAX_PROTO3" - Syntax `proto3`. // "SYNTAX_EDITIONS" - Syntax `editions`. Syntax string `json:"syntax,omitempty"` // Version: A version string for this interface. If specified, must have the // form `major-version.minor-version`, as in `1.10`. If the minor version is // omitted, it defaults to zero. If the entire version field is empty, the // major version is derived from the package name, as outlined below. If the // field is not empty, the version in the package name will be verified to be // consistent with what is provided here. The versioning schema uses semantic // versioning (http://semver.org) where the major version number indicates a // breaking change and the minor version an additive, non-breaking change. Both // version numbers are signals to users what to expect from different versions, // and should be carefully chosen based on the product plan. The major version // is also reflected in the package name of the interface, which must end in // `v`, as in `google.feature.v1`. For major versions 0 and 1, the suffix can // be omitted. Zero major versions must only be used for experimental, non-GA // interfaces. Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "Methods") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Methods") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Api) MarshalJSON() ([]byte, error) { type NoMethod Api return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AuditConfig: Specifies the audit configuration for a service. The // configuration determines which permission types are logged, and what // identities, if any, are exempted from logging. An AuditConfig must have one // or more AuditLogConfigs. If there are AuditConfigs for both `allServices` // and a specific service, the union of the two AuditConfigs is used for that // service: the log_types specified in each AuditConfig are enabled, and the // exempted_members in each AuditLogConfig are exempted. Example Policy with // multiple AuditConfigs: { "audit_configs": [ { "service": "allServices", // "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [ // "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type": // "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com", // "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type": // "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For // sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ // logging. It also exempts `jose@example.com` from DATA_READ logging, and // `aliya@example.com` from DATA_WRITE logging. type AuditConfig struct { // AuditLogConfigs: The configuration for logging of each type of permission. AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"` // Service: Specifies a service that will be enabled for audit logging. For // example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` // is a special value that covers all services. Service string `json:"service,omitempty"` // ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AuditLogConfigs") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AuditConfig) MarshalJSON() ([]byte, error) { type NoMethod AuditConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AuditLogConfig: Provides the configuration for logging a type of // permissions. Example: { "audit_log_configs": [ { "log_type": "DATA_READ", // "exempted_members": [ "user:jose@example.com" ] }, { "log_type": // "DATA_WRITE" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while // exempting jose@example.com from DATA_READ logging. type AuditLogConfig struct { // ExemptedMembers: Specifies the identities that do not cause logging for this // type of permission. Follows the same format of Binding.members. ExemptedMembers []string `json:"exemptedMembers,omitempty"` // LogType: The log type that this config enables. // // Possible values: // "LOG_TYPE_UNSPECIFIED" - Default case. Should never be this. // "ADMIN_READ" - Admin reads. Example: CloudIAM getIamPolicy // "DATA_WRITE" - Data writes. Example: CloudSQL Users create // "DATA_READ" - Data reads. Example: CloudSQL Users list LogType string `json:"logType,omitempty"` // ForceSendFields is a list of field names (e.g. "ExemptedMembers") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ExemptedMembers") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AuditLogConfig) MarshalJSON() ([]byte, error) { type NoMethod AuditLogConfig return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AuthProvider: Configuration for an authentication provider, including // support for JSON Web Token (JWT) // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). type AuthProvider struct { // Audiences: The list of JWT audiences // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). // that are allowed to access. A JWT containing any of these audiences will be // accepted. When this setting is absent, JWTs with audiences: - // "https://[service.name]/[google.protobuf.Api.name]" - // "https://[service.name]/" will be accepted. For example, if no audiences are // in the setting, LibraryService API will accept JWTs with the following // audiences: - // https://library-example.googleapis.com/google.example.library.v1.LibraryService // - https://library-example.googleapis.com/ Example: audiences: // bookstore_android.apps.googleusercontent.com, // bookstore_web.apps.googleusercontent.com Audiences string `json:"audiences,omitempty"` // AuthorizationUrl: Redirect URL if JWT token is required but not present or // is expired. Implement authorizationUrl of securityDefinitions in OpenAPI // spec. AuthorizationUrl string `json:"authorizationUrl,omitempty"` // Id: The unique identifier of the auth provider. It will be referred to by // `AuthRequirement.provider_id`. Example: "bookstore_auth". Id string `json:"id,omitempty"` // Issuer: Identifies the principal that issued the JWT. See // https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 // Usually a URL or an email address. Example: https://securetoken.google.com // Example: 1234567-compute@developer.gserviceaccount.com Issuer string `json:"issuer,omitempty"` // JwksUri: URL of the provider's public key set to validate signature of the // JWT. See OpenID Discovery // (https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). // Optional if the key set document: - can be retrieved from OpenID Discovery // (https://openid.net/specs/openid-connect-discovery-1_0.html) of the issuer. // - can be inferred from the email domain of the issuer (e.g. a Google service // account). Example: https://www.googleapis.com/oauth2/v1/certs JwksUri string `json:"jwksUri,omitempty"` // JwtLocations: Defines the locations to extract the JWT. For now it is only // used by the Cloud Endpoints to store the OpenAPI extension // [x-google-jwt-locations] // (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) // JWT locations can be one of HTTP headers, URL query parameters or cookies. // The rule is that the first match wins. If not specified, default to use // following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion // 3) access_token query parameter Default locations can be specified as // followings: jwt_locations: - header: Authorization value_prefix: "Bearer " - // header: x-goog-iap-jwt-assertion - query: access_token JwtLocations []*JwtLocation `json:"jwtLocations,omitempty"` // ForceSendFields is a list of field names (e.g. "Audiences") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Audiences") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AuthProvider) MarshalJSON() ([]byte, error) { type NoMethod AuthProvider return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AuthRequirement: User-defined authentication requirements, including support // for JSON Web Token (JWT) // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32). type AuthRequirement struct { // Audiences: NOTE: This will be deprecated soon, once AuthProvider.audiences // is implemented and accepted in all the runtime components. The list of JWT // audiences // (https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). // that are allowed to access. A JWT containing any of these audiences will be // accepted. When this setting is absent, only JWTs with audience // "https://Service_name/API_name" will be accepted. For example, if no // audiences are in the setting, LibraryService API will only accept JWTs with // the following audience // "https://library-example.googleapis.com/google.example.library.v1.LibraryServ // ice". Example: audiences: bookstore_android.apps.googleusercontent.com, // bookstore_web.apps.googleusercontent.com Audiences string `json:"audiences,omitempty"` // ProviderId: id from authentication provider. Example: provider_id: // bookstore_auth ProviderId string `json:"providerId,omitempty"` // ForceSendFields is a list of field names (e.g. "Audiences") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Audiences") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AuthRequirement) MarshalJSON() ([]byte, error) { type NoMethod AuthRequirement return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Authentication: `Authentication` defines the authentication configuration // for API methods provided by an API service. Example: name: // calendar.googleapis.com authentication: providers: - id: // google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs // issuer: https://securetoken.google.com rules: - selector: "*" requirements: // provider_id: google_calendar_auth - selector: google.calendar.Delegate // oauth: canonical_scopes: https://www.googleapis.com/auth/calendar.read type Authentication struct { // Providers: Defines a set of authentication providers that a service // supports. Providers []*AuthProvider `json:"providers,omitempty"` // Rules: A list of authentication rules that apply to individual API methods. // **NOTE:** All service configuration rules follow "last one wins" order. Rules []*AuthenticationRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. "Providers") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Providers") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Authentication) MarshalJSON() ([]byte, error) { type NoMethod Authentication return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // AuthenticationRule: Authentication rules for the service. By default, if a // method has any authentication requirements, every request must include a // valid credential matching one of the requirements. It's an error to include // more than one kind of credential in a single request. If a method doesn't // have any auth requirements, request credentials will be ignored. type AuthenticationRule struct { // AllowWithoutCredential: If true, the service accepts API keys without any // other credential. This flag only applies to HTTP and gRPC requests. AllowWithoutCredential bool `json:"allowWithoutCredential,omitempty"` // Oauth: The requirements for OAuth credentials. Oauth *OAuthRequirements `json:"oauth,omitempty"` // Requirements: Requirements for additional authentication providers. Requirements []*AuthRequirement `json:"requirements,omitempty"` // Selector: Selects the methods to which this rule applies. Refer to selector // for syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "AllowWithoutCredential") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AllowWithoutCredential") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *AuthenticationRule) MarshalJSON() ([]byte, error) { type NoMethod AuthenticationRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Backend: `Backend` defines the backend configuration for a service. type Backend struct { // Rules: A list of API backend rules that apply to individual API methods. // **NOTE:** All service configuration rules follow "last one wins" order. Rules []*BackendRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. "Rules") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Rules") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Backend) MarshalJSON() ([]byte, error) { type NoMethod Backend return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // BackendRule: A backend rule provides configuration for an individual API // element. type BackendRule struct { // Address: The address of the API backend. The scheme is used to determine the // backend protocol and security. The following schemes are accepted: SCHEME // PROTOCOL SECURITY http:// HTTP None https:// HTTP TLS grpc:// gRPC None // grpcs:// gRPC TLS It is recommended to explicitly include a scheme. Leaving // out the scheme may cause constrasting behaviors across platforms. If the // port is unspecified, the default is: - 80 for schemes without TLS - 443 for // schemes with TLS For HTTP backends, use protocol to specify the protocol // version. Address string `json:"address,omitempty"` // Deadline: The number of seconds to wait for a response from a request. The // default varies based on the request protocol and deployment environment. Deadline float64 `json:"deadline,omitempty"` // DisableAuth: When disable_auth is true, a JWT ID token won't be generated // and the original "Authorization" HTTP header will be preserved. If the // header is used to carry the original token and is expected by the backend, // this field must be set to true to preserve the header. DisableAuth bool `json:"disableAuth,omitempty"` // JwtAudience: The JWT audience is used when generating a JWT ID token for the // backend. This ID token will be added in the HTTP "authorization" header, and // sent to the backend. JwtAudience string `json:"jwtAudience,omitempty"` // MinDeadline: Deprecated, do not use. MinDeadline float64 `json:"minDeadline,omitempty"` // OperationDeadline: The number of seconds to wait for the completion of a // long running operation. The default is no deadline. OperationDeadline float64 `json:"operationDeadline,omitempty"` // OverridesByRequestProtocol: The map between request protocol and the backend // address. OverridesByRequestProtocol map[string]BackendRule `json:"overridesByRequestProtocol,omitempty"` // Possible values: // "PATH_TRANSLATION_UNSPECIFIED" // "CONSTANT_ADDRESS" - Use the backend address as-is, with no modification // to the path. If the URL pattern contains variables, the variable names and // values will be appended to the query string. If a query string parameter and // a URL pattern variable have the same name, this may result in duplicate keys // in the query string. # Examples Given the following operation config: Method // path: /api/company/{cid}/user/{uid} Backend address: // https://example.cloudfunctions.net/getUser Requests to the following request // paths will call the backend at the translated path: Request path: // /api/company/widgetworks/user/johndoe Translated: // https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe // Request path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: // https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe // "APPEND_PATH_TO_ADDRESS" - The request path will be appended to the // backend address. # Examples Given the following operation config: Method // path: /api/company/{cid}/user/{uid} Backend address: // https://example.appspot.com Requests to the following request paths will // call the backend at the translated path: Request path: // /api/company/widgetworks/user/johndoe Translated: // https://example.appspot.com/api/company/widgetworks/user/johndoe Request // path: /api/company/widgetworks/user/johndoe?timezone=EST Translated: // https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST PathTranslation string `json:"pathTranslation,omitempty"` // Protocol: The protocol used for sending a request to the backend. The // supported values are "http/1.1" and "h2". The default value is inferred from // the scheme in the address field: SCHEME PROTOCOL http:// http/1.1 https:// // http/1.1 grpc:// h2 grpcs:// h2 For secure HTTP backends (https://) that // support HTTP/2, set this field to "h2" for improved performance. Configuring // this field to non-default values is only supported for secure HTTP backends. // This field will be ignored for all other backends. See // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids // for more details on the supported values. Protocol string `json:"protocol,omitempty"` // Selector: Selects the methods to which this rule applies. Refer to selector // for syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "Address") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Address") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BackendRule) MarshalJSON() ([]byte, error) { type NoMethod BackendRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *BackendRule) UnmarshalJSON(data []byte) error { type NoMethod BackendRule var s1 struct { Deadline gensupport.JSONFloat64 `json:"deadline"` MinDeadline gensupport.JSONFloat64 `json:"minDeadline"` OperationDeadline gensupport.JSONFloat64 `json:"operationDeadline"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.Deadline = float64(s1.Deadline) s.MinDeadline = float64(s1.MinDeadline) s.OperationDeadline = float64(s1.OperationDeadline) return nil } // Billing: Billing related configuration of the service. The following example // shows how to configure monitored resources and metrics for billing, // `consumer_destinations` is the only supported destination and the monitored // resources need at least one label key `cloud.googleapis.com/location` to // indicate the location of the billing usage, using different monitored // resources between monitoring and billing is recommended so they can be // evolved independently: monitored_resources: - type: // library.googleapis.com/billing_branch labels: - key: // cloud.googleapis.com/location description: | Predefined label to support // billing location restriction. - key: city description: | Custom label to // define the city where the library branch is located in. - key: name // description: Custom label to define the name of the library branch. metrics: // - name: library.googleapis.com/book/borrowed_count metric_kind: DELTA // value_type: INT64 unit: "1" billing: consumer_destinations: - // monitored_resource: library.googleapis.com/billing_branch metrics: - // library.googleapis.com/book/borrowed_count type Billing struct { // ConsumerDestinations: Billing configurations for sending metrics to the // consumer project. There can be multiple consumer destinations per service, // each one must have a different monitored resource type. A metric can be used // in at most one consumer destination. ConsumerDestinations []*BillingDestination `json:"consumerDestinations,omitempty"` // ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ConsumerDestinations") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Billing) MarshalJSON() ([]byte, error) { type NoMethod Billing return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // BillingDestination: Configuration of a specific billing destination // (Currently only support bill against consumer project). type BillingDestination struct { // Metrics: Names of the metrics to report to this billing destination. Each // name must be defined in Service.metrics section. Metrics []string `json:"metrics,omitempty"` // MonitoredResource: The monitored resource type. The type must be defined in // Service.monitored_resources section. MonitoredResource string `json:"monitoredResource,omitempty"` // ForceSendFields is a list of field names (e.g. "Metrics") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Metrics") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *BillingDestination) MarshalJSON() ([]byte, error) { type NoMethod BillingDestination return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Binding: Associates `members`, or principals, with a `role`. type Binding struct { // Condition: The condition that is associated with this binding. If the // condition evaluates to `true`, then this binding applies to the current // request. If the condition evaluates to `false`, then this binding does not // apply to the current request. However, a different role binding might grant // the same role to one or more of the principals in this binding. To learn // which resources support conditions in their IAM policies, see the IAM // documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). Condition *Expr `json:"condition,omitempty"` // Members: Specifies the principals requesting access for a Google Cloud // resource. `members` can have the following values: * `allUsers`: A special // identifier that represents anyone who is on the internet; with or without a // Google account. * `allAuthenticatedUsers`: A special identifier that // represents anyone who is authenticated with a Google account or a service // account. Does not include identities that come from external identity // providers (IdPs) through identity federation. * `user:{emailid}`: An email // address that represents a specific Google account. For example, // `alice@example.com` . * `serviceAccount:{emailid}`: An email address that // represents a Google service account. For example, // `my-other-app@appspot.gserviceaccount.com`. * // `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An // identifier for a Kubernetes service account // (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). // For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * // `group:{emailid}`: An email address that represents a Google group. For // example, `admins@example.com`. * `domain:{domain}`: The G Suite domain // (primary) that represents all the users of that domain. For example, // `google.com` or `example.com`. * // `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/sub // ject/{subject_attribute_value}`: A single identity in a workforce identity // pool. * // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ // group/{group_id}`: All workforce identities in a group. * // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ // attribute.{attribute_name}/{attribute_value}`: All workforce identities with // a specific attribute value. * // `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/ // *`: All identities in a workforce identity pool. * // `principal://iam.googleapis.com/projects/{project_number}/locations/global/wo // rkloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single // identity in a workload identity pool. * // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global // /workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool // group. * // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global // /workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value} // `: All identities in a workload identity pool with a certain attribute. * // `principalSet://iam.googleapis.com/projects/{project_number}/locations/global // /workloadIdentityPools/{pool_id}/*`: All identities in a workload identity // pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus // unique identifier) representing a user that has been recently deleted. For // example, `alice@example.com?uid=123456789012345678901`. If the user is // recovered, this value reverts to `user:{emailid}` and the recovered user // retains the role in the binding. * // `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus // unique identifier) representing a service account that has been recently // deleted. For example, // `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the // service account is undeleted, this value reverts to // `serviceAccount:{emailid}` and the undeleted service account retains the // role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email // address (plus unique identifier) representing a Google group that has been // recently deleted. For example, // `admins@example.com?uid=123456789012345678901`. If the group is recovered, // this value reverts to `group:{emailid}` and the recovered group retains the // role in the binding. * // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool // _id}/subject/{subject_attribute_value}`: Deleted single identity in a // workforce identity pool. For example, // `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-po // ol-id/subject/my-subject-attribute-value`. Members []string `json:"members,omitempty"` // Role: Role that is assigned to the list of `members`, or principals. For // example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview // of the IAM roles and permissions, see the IAM documentation // (https://cloud.google.com/iam/docs/roles-overview). For a list of the // available pre-defined roles, see here // (https://cloud.google.com/iam/docs/understanding-roles). Role string `json:"role,omitempty"` // ForceSendFields is a list of field names (e.g. "Condition") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Condition") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Binding) MarshalJSON() ([]byte, error) { type NoMethod Binding return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ChangeReport: Change report associated with a particular service // configuration. It contains a list of ConfigChanges based on the comparison // between two service configurations. type ChangeReport struct { // ConfigChanges: List of changes between two service configurations. The // changes will be alphabetically sorted based on the identifier of each // change. A ConfigChange identifier is a dot separated path to the // configuration. Example: // visibility.rules[selector='LibraryService.CreateBook'].restriction ConfigChanges []*ConfigChange `json:"configChanges,omitempty"` // ForceSendFields is a list of field names (e.g. "ConfigChanges") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ConfigChanges") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ChangeReport) MarshalJSON() ([]byte, error) { type NoMethod ChangeReport return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ClientLibrarySettings: Details about how and where to publish client // libraries. type ClientLibrarySettings struct { // CppSettings: Settings for C++ client libraries. CppSettings *CppSettings `json:"cppSettings,omitempty"` // DotnetSettings: Settings for .NET client libraries. DotnetSettings *DotnetSettings `json:"dotnetSettings,omitempty"` // GoSettings: Settings for Go client libraries. GoSettings *GoSettings `json:"goSettings,omitempty"` // JavaSettings: Settings for legacy Java features, supported in the Service // YAML. JavaSettings *JavaSettings `json:"javaSettings,omitempty"` // LaunchStage: Launch stage of this version of the API. // // Possible values: // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use // it. // "PRELAUNCH" - Prelaunch features are hidden from users and are only // visible internally. // "EARLY_ACCESS" - Early Access features are limited to a closed group of // testers. To use these features, you must sign up in advance and sign a // Trusted Tester agreement (which includes confidentiality provisions). These // features may be unstable, changed in backward-incompatible ways, and are not // guaranteed to be released. // "ALPHA" - Alpha is a limited availability test for releases before they // are cleared for widespread use. By Alpha, all significant design issues are // resolved and we are in the process of verifying functionality. Alpha // customers need to apply for access, agree to applicable terms, and have // their projects allowlisted. Alpha releases don't have to be feature // complete, no SLAs are provided, and there are no technical support // obligations, but they will be far enough along that customers can actually // use them in test environments or for limited-use tests -- just like they // would in normal production cases. // "BETA" - Beta is the point at which we are ready to open a release for any // customer to use. There are no SLA or technical support obligations in a Beta // release. Products will be complete from a feature perspective, but may have // some open outstanding issues. Beta releases are suitable for limited // production use cases. // "GA" - GA features are open to all developers and are considered stable // and fully qualified for production use. // "DEPRECATED" - Deprecated features are scheduled to be shut down and // removed. For more information, see the "Deprecation Policy" section of our // [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud // Platform Subject to the Deprecation // Policy](https://cloud.google.com/terms/deprecation) documentation. LaunchStage string `json:"launchStage,omitempty"` // NodeSettings: Settings for Node client libraries. NodeSettings *NodeSettings `json:"nodeSettings,omitempty"` // PhpSettings: Settings for PHP client libraries. PhpSettings *PhpSettings `json:"phpSettings,omitempty"` // PythonSettings: Settings for Python client libraries. PythonSettings *PythonSettings `json:"pythonSettings,omitempty"` // RestNumericEnums: When using transport=rest, the client request will encode // enums as numbers rather than strings. RestNumericEnums bool `json:"restNumericEnums,omitempty"` // RubySettings: Settings for Ruby client libraries. RubySettings *RubySettings `json:"rubySettings,omitempty"` // Version: Version of the API to apply these settings to. This is the full // protobuf package for the API, ending in the version element. Examples: // "google.cloud.speech.v1" and "google.spanner.admin.database.v1". Version string `json:"version,omitempty"` // ForceSendFields is a list of field names (e.g. "CppSettings") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CppSettings") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ClientLibrarySettings) MarshalJSON() ([]byte, error) { type NoMethod ClientLibrarySettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // CommonLanguageSettings: Required information for every language. type CommonLanguageSettings struct { // Destinations: The destination where API teams want this client library to be // published. // // Possible values: // "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED" - Client libraries will neither // be generated nor published to package managers. // "GITHUB" - Generate the client library in a repo under // github.com/googleapis, but don't publish it to package managers. // "PACKAGE_MANAGER" - Publish the library to package managers like nuget.org // and npmjs.com. Destinations []string `json:"destinations,omitempty"` // ReferenceDocsUri: Link to automatically generated reference documentation. // Example: https://cloud.google.com/nodejs/docs/reference/asset/latest ReferenceDocsUri string `json:"referenceDocsUri,omitempty"` // ForceSendFields is a list of field names (e.g. "Destinations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Destinations") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *CommonLanguageSettings) MarshalJSON() ([]byte, error) { type NoMethod CommonLanguageSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ConfigChange: Output generated from semantically comparing two versions of a // service configuration. Includes detailed information about a field that have // changed with applicable advice about potential consequences for the change, // such as backwards-incompatibility. type ConfigChange struct { // Advices: Collection of advice provided for this change, useful for // determining the possible impact of this change. Advices []*Advice `json:"advices,omitempty"` // ChangeType: The type for this change, either ADDED, REMOVED, or MODIFIED. // // Possible values: // "CHANGE_TYPE_UNSPECIFIED" - No value was provided. // "ADDED" - The changed object exists in the 'new' service configuration, // but not in the 'old' service configuration. // "REMOVED" - The changed object exists in the 'old' service configuration, // but not in the 'new' service configuration. // "MODIFIED" - The changed object exists in both service configurations, but // its value is different. ChangeType string `json:"changeType,omitempty"` // Element: Object hierarchy path to the change, with levels separated by a '.' // character. For repeated fields, an applicable unique identifier field is // used for the index (usually selector, name, or id). For maps, the term 'key' // is used. If the field has no unique identifier, the numeric index is used. // Examples: - // visibility.rules[selector=="google.LibraryService.ListBooks"].restriction - // quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value - // logging.producer_destinations[0] Element string `json:"element,omitempty"` // NewValue: Value of the changed object in the new Service configuration, in // JSON format. This field will not be populated if ChangeType == REMOVED. NewValue string `json:"newValue,omitempty"` // OldValue: Value of the changed object in the old Service configuration, in // JSON format. This field will not be populated if ChangeType == ADDED. OldValue string `json:"oldValue,omitempty"` // ForceSendFields is a list of field names (e.g. "Advices") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Advices") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ConfigChange) MarshalJSON() ([]byte, error) { type NoMethod ConfigChange return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ConfigFile: Generic specification of a source configuration file type ConfigFile struct { // FileContents: The bytes that constitute the file. FileContents string `json:"fileContents,omitempty"` // FilePath: The file name of the configuration file (full or relative path). FilePath string `json:"filePath,omitempty"` // FileType: The type of configuration file this represents. // // Possible values: // "FILE_TYPE_UNSPECIFIED" - Unknown file type. // "SERVICE_CONFIG_YAML" - YAML-specification of service. // "OPEN_API_JSON" - OpenAPI specification, serialized in JSON. // "OPEN_API_YAML" - OpenAPI specification, serialized in YAML. // "FILE_DESCRIPTOR_SET_PROTO" - FileDescriptorSet, generated by protoc. To // generate, use protoc with imports and source info included. For an example // test.proto file, the following command would put the value in a new file // named out.pb. $protoc --include_imports --include_source_info test.proto -o // out.pb // "PROTO_FILE" - Uncompiled Proto file. Used for storage and display // purposes only, currently server-side compilation is not supported. Should // match the inputs to 'protoc' command used to generated // FILE_DESCRIPTOR_SET_PROTO. A file of this type can only be included if at // least one file of type FILE_DESCRIPTOR_SET_PROTO is included. FileType string `json:"fileType,omitempty"` // ForceSendFields is a list of field names (e.g. "FileContents") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FileContents") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ConfigFile) MarshalJSON() ([]byte, error) { type NoMethod ConfigFile return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ConfigRef: Represents a service configuration with its name and id. type ConfigRef struct { // Name: Resource name of a service config. It must have the following format: // "services/{service name}/configs/{config id}". Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ConfigRef) MarshalJSON() ([]byte, error) { type NoMethod ConfigRef return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ConfigSource: Represents a source file which is used to generate the service // configuration defined by `google.api.Service`. type ConfigSource struct { // Files: Set of source configuration files that are used to generate a service // configuration (`google.api.Service`). Files []*ConfigFile `json:"files,omitempty"` // Id: A unique ID for a specific instance of this message, typically assigned // by the client for tracking purpose. If empty, the server may choose to // generate one instead. Id string `json:"id,omitempty"` // ForceSendFields is a list of field names (e.g. "Files") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Files") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ConfigSource) MarshalJSON() ([]byte, error) { type NoMethod ConfigSource return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Context: `Context` defines which contexts an API requests. Example: context: // rules: - selector: "*" requested: - google.rpc.context.ProjectContext - // google.rpc.context.OriginContext The above specifies that all methods in the // API request `google.rpc.context.ProjectContext` and // `google.rpc.context.OriginContext`. Available context types are defined in // package `google.rpc.context`. This also provides mechanism to allowlist any // protobuf message extension that can be sent in grpc metadata using // “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list // any service specific protobuf types that can appear in grpc metadata as // follows in your yaml file: Example: context: rules: - selector: // "google.example.library.v1.LibraryService.CreateBook" // allowed_request_extensions: - google.foo.v1.NewExtension // allowed_response_extensions: - google.foo.v1.NewExtension You can also // specify extension ID instead of fully qualified extension name here. type Context struct { // Rules: A list of RPC context rules that apply to individual API methods. // **NOTE:** All service configuration rules follow "last one wins" order. Rules []*ContextRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. "Rules") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Rules") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Context) MarshalJSON() ([]byte, error) { type NoMethod Context return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ContextRule: A context rule provides information about the context for an // individual API element. type ContextRule struct { // AllowedRequestExtensions: A list of full type names or extension IDs of // extensions allowed in grpc side channel from client to backend. AllowedRequestExtensions []string `json:"allowedRequestExtensions,omitempty"` // AllowedResponseExtensions: A list of full type names or extension IDs of // extensions allowed in grpc side channel from backend to client. AllowedResponseExtensions []string `json:"allowedResponseExtensions,omitempty"` // Provided: A list of full type names of provided contexts. Provided []string `json:"provided,omitempty"` // Requested: A list of full type names of requested contexts. Requested []string `json:"requested,omitempty"` // Selector: Selects the methods to which this rule applies. Refer to selector // for syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "AllowedRequestExtensions") // to unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AllowedRequestExtensions") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ContextRule) MarshalJSON() ([]byte, error) { type NoMethod ContextRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Control: Selects and configures the service controller used by the service. // Example: control: environment: servicecontrol.googleapis.com type Control struct { // Environment: The service controller environment to use. If empty, no control // plane feature (like quota and billing) will be enabled. The recommended // value for most services is servicecontrol.googleapis.com Environment string `json:"environment,omitempty"` // MethodPolicies: Defines policies applying to the API methods of the service. MethodPolicies []*MethodPolicy `json:"methodPolicies,omitempty"` // ForceSendFields is a list of field names (e.g. "Environment") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Environment") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Control) MarshalJSON() ([]byte, error) { type NoMethod Control return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // CppSettings: Settings for C++ client libraries. type CppSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *CppSettings) MarshalJSON() ([]byte, error) { type NoMethod CppSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // CustomError: Customize service error responses. For example, list any // service specific protobuf types that can appear in error detail lists of // error responses. Example: custom_error: types: - google.foo.v1.CustomError - // google.foo.v1.AnotherError type CustomError struct { // Rules: The list of custom error rules that apply to individual API messages. // **NOTE:** All service configuration rules follow "last one wins" order. Rules []*CustomErrorRule `json:"rules,omitempty"` // Types: The list of custom error detail types, e.g. // 'google.foo.v1.CustomError'. Types []string `json:"types,omitempty"` // ForceSendFields is a list of field names (e.g. "Rules") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Rules") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *CustomError) MarshalJSON() ([]byte, error) { type NoMethod CustomError return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // CustomErrorRule: A custom error rule. type CustomErrorRule struct { // IsErrorType: Mark this message as possible payload in error response. // Otherwise, objects of this type will be filtered when they appear in error // payload. IsErrorType bool `json:"isErrorType,omitempty"` // Selector: Selects messages to which this rule applies. Refer to selector for // syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "IsErrorType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "IsErrorType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *CustomErrorRule) MarshalJSON() ([]byte, error) { type NoMethod CustomErrorRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // CustomHttpPattern: A custom pattern is used for defining custom HTTP verb. type CustomHttpPattern struct { // Kind: The name of this custom HTTP verb. Kind string `json:"kind,omitempty"` // Path: The path matched by this custom verb. Path string `json:"path,omitempty"` // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Kind") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *CustomHttpPattern) MarshalJSON() ([]byte, error) { type NoMethod CustomHttpPattern return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DeleteServiceStrategy: Strategy used to delete a service. This strategy is a // placeholder only used by the system generated rollout to delete a service. type DeleteServiceStrategy struct { } // Diagnostic: Represents a diagnostic message (error or warning) type Diagnostic struct { // Kind: The kind of diagnostic information provided. // // Possible values: // "WARNING" - Warnings and errors // "ERROR" - Only errors Kind string `json:"kind,omitempty"` // Location: File name and line number of the error or warning. Location string `json:"location,omitempty"` // Message: Message describing the error or warning. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Kind") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Kind") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Diagnostic) MarshalJSON() ([]byte, error) { type NoMethod Diagnostic return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Documentation: `Documentation` provides the information for describing a // service. Example: documentation: summary: > The Google Calendar API gives // access to most calendar features. pages: - name: Overview content: (== // include google/foo/overview.md ==) - name: Tutorial content: (== include // google/foo/tutorial.md ==) subpages: - name: Java content: (== include // google/foo/tutorial_java.md ==) rules: - selector: // google.calendar.Calendar.Get description: > ... - selector: // google.calendar.Calendar.Put description: > ... Documentation is provided in // markdown syntax. In addition to standard markdown features, definition // lists, tables and fenced code blocks are supported. Section headers can be // provided and are interpreted relative to the section nesting of the context // where a documentation fragment is embedded. Documentation from the IDL is // merged with documentation defined via the config at normalization time, // where documentation provided by config rules overrides IDL provided. A // number of constructs specific to the API platform are supported in // documentation text. In order to reference a proto element, the following // notation can be used: [fully.qualified.proto.name][] To override the display // text used for the link, this can be used: [display // text][fully.qualified.proto.name] Text can be excluded from doc using the // following notation: (-- internal comment --) A few directives are available // in documentation. Note that directives must appear on a single line to be // properly identified. The `include` directive includes a markdown file from // an external source: (== include path/to/file ==) The `resource_for` // directive marks a message to be the resource of a collection in REST view. // If it is not specified, tools attempt to infer the resource from the // operations in a collection: (== resource_for v1.shelves.books ==) The // directive `suppress_warning` does not directly affect documentation and is // documented together with service config validation. type Documentation struct { // DocumentationRootUrl: The URL to the root of documentation. DocumentationRootUrl string `json:"documentationRootUrl,omitempty"` // Overview: Declares a single overview page. For example: documentation: // summary: ... overview: (== include overview.md ==) This is a shortcut for // the following declaration (using pages style): documentation: summary: ... // pages: - name: Overview content: (== include overview.md ==) Note: you // cannot specify both `overview` field and `pages` field. Overview string `json:"overview,omitempty"` // Pages: The top level pages for the documentation set. Pages []*Page `json:"pages,omitempty"` // Rules: A list of documentation rules that apply to individual API elements. // **NOTE:** All service configuration rules follow "last one wins" order. Rules []*DocumentationRule `json:"rules,omitempty"` // SectionOverrides: Specifies section and content to override boilerplate // content provided by go/api-docgen. Currently overrides following sections: // 1. rest.service.client_libraries SectionOverrides []*Page `json:"sectionOverrides,omitempty"` // ServiceRootUrl: Specifies the service root url if the default one (the // service name from the yaml file) is not suitable. This can be seen in any // fully specified service urls as well as sections that show a base that other // urls are relative to. ServiceRootUrl string `json:"serviceRootUrl,omitempty"` // Summary: A short description of what the service does. The summary must be // plain text. It becomes the overview of the service displayed in Google Cloud // Console. NOTE: This field is equivalent to the standard field `description`. Summary string `json:"summary,omitempty"` // ForceSendFields is a list of field names (e.g. "DocumentationRootUrl") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DocumentationRootUrl") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Documentation) MarshalJSON() ([]byte, error) { type NoMethod Documentation return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DocumentationRule: A documentation rule provides information about // individual API elements. type DocumentationRule struct { // DeprecationDescription: Deprecation description of the selected element(s). // It can be provided if an element is marked as `deprecated`. DeprecationDescription string `json:"deprecationDescription,omitempty"` // Description: Description of the selected proto element (e.g. a message, a // method, a 'service' definition, or a field). Defaults to leading & trailing // comments taken from the proto source definition of the proto element. Description string `json:"description,omitempty"` // DisableReplacementWords: String of comma or space separated case-sensitive // words for which method/field name replacement will be disabled by // go/api-docgen. DisableReplacementWords string `json:"disableReplacementWords,omitempty"` // Selector: The selector is a comma-separated list of patterns for any element // such as a method, a field, an enum value. Each pattern is a qualified name // of the element which may end in "*", indicating a wildcard. Wildcards are // only allowed at the end and for a whole component of the qualified name, // i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match // one or more components. To specify a default for all applicable elements, // the whole pattern "*" is used. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "DeprecationDescription") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DeprecationDescription") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DocumentationRule) MarshalJSON() ([]byte, error) { type NoMethod DocumentationRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // DotnetSettings: Settings for Dotnet client libraries. type DotnetSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForcedNamespaceAliases: Namespaces which must be aliased in snippets due to // a known (but non-generator-predictable) naming collision ForcedNamespaceAliases []string `json:"forcedNamespaceAliases,omitempty"` // HandwrittenSignatures: Method signatures (in the form // "service.method(signature)") which are provided separately, so shouldn't be // generated. Snippets *calling* these methods are still generated, however. HandwrittenSignatures []string `json:"handwrittenSignatures,omitempty"` // IgnoredResources: List of full resource types to ignore during generation. // This is typically used for API-specific Location resources, which should be // handled by the generator as if they were actually the common Location // resources. Example entry: "documentai.googleapis.com/Location" IgnoredResources []string `json:"ignoredResources,omitempty"` // RenamedResources: Map from full resource types to the effective short name // for the resource. This is used when otherwise resource named from different // services would cause naming collisions. Example entry: // "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" RenamedResources map[string]string `json:"renamedResources,omitempty"` // RenamedServices: Map from original service names to renamed versions. This // is used when the default generated types would cause a naming conflict. // (Neither name is fully-qualified.) Example: Subscriber to // SubscriberServiceApi. RenamedServices map[string]string `json:"renamedServices,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *DotnetSettings) MarshalJSON() ([]byte, error) { type NoMethod DotnetSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // EnableServiceResponse: Operation payload for EnableService method. type EnableServiceResponse struct { } // Endpoint: `Endpoint` describes a network address of a service that serves a // set of APIs. It is commonly known as a service endpoint. A service may // expose any number of service endpoints, and all service endpoints share the // same service definition, such as quota limits and monitoring metrics. // Example: type: google.api.Service name: library-example.googleapis.com // endpoints: # Declares network address // `https://library-example.googleapis.com` # for service // `library-example.googleapis.com`. The `https` scheme # is implicit for all // service endpoints. Other schemes may be # supported in the future. - name: // library-example.googleapis.com allow_cors: false - name: // content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls // to be passed to the API frontend, for it # to decide whether the subsequent // cross-origin request is allowed # to proceed. allow_cors: true type Endpoint struct { // Aliases: Aliases for this endpoint, these will be served by the same UrlMap // as the parent endpoint, and will be provisioned in the GCP stack for the // Regional Endpoints. Aliases []string `json:"aliases,omitempty"` // AllowCors: Allowing CORS // (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka // cross-domain traffic, would allow the backends served from this endpoint to // receive and respond to HTTP OPTIONS requests. The response will be used by // the browser to determine whether the subsequent cross-origin request is // allowed to proceed. AllowCors bool `json:"allowCors,omitempty"` // Name: The canonical name of this endpoint. Name string `json:"name,omitempty"` // Target: The specification of an Internet routable address of API frontend // that will handle requests to this API Endpoint // (https://cloud.google.com/apis/design/glossary). It should be either a valid // IPv4 address or a fully-qualified domain name. For example, "8.8.8.8" or // "myservice.appspot.com". Target string `json:"target,omitempty"` // ForceSendFields is a list of field names (e.g. "Aliases") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Aliases") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Endpoint) MarshalJSON() ([]byte, error) { type NoMethod Endpoint return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Enum: Enum type definition. type Enum struct { // Edition: The source edition string, only valid when syntax is // SYNTAX_EDITIONS. Edition string `json:"edition,omitempty"` // Enumvalue: Enum value definitions. Enumvalue []*EnumValue `json:"enumvalue,omitempty"` // Name: Enum type name. Name string `json:"name,omitempty"` // Options: Protocol buffer options. Options []*Option `json:"options,omitempty"` // SourceContext: The source context. SourceContext *SourceContext `json:"sourceContext,omitempty"` // Syntax: The source syntax. // // Possible values: // "SYNTAX_PROTO2" - Syntax `proto2`. // "SYNTAX_PROTO3" - Syntax `proto3`. // "SYNTAX_EDITIONS" - Syntax `editions`. Syntax string `json:"syntax,omitempty"` // ForceSendFields is a list of field names (e.g. "Edition") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Edition") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Enum) MarshalJSON() ([]byte, error) { type NoMethod Enum return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // EnumValue: Enum value definition. type EnumValue struct { // Name: Enum value name. Name string `json:"name,omitempty"` // Number: Enum value number. Number int64 `json:"number,omitempty"` // Options: Protocol buffer options. Options []*Option `json:"options,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *EnumValue) MarshalJSON() ([]byte, error) { type NoMethod EnumValue return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Expr: Represents a textual expression in the Common Expression Language // (CEL) syntax. CEL is a C-like expression language. The syntax and semantics // of CEL are documented at https://github.com/google/cel-spec. Example // (Comparison): title: "Summary size limit" description: "Determines if a // summary is less than 100 chars" expression: "document.summary.size() < 100" // Example (Equality): title: "Requestor is owner" description: "Determines if // requestor is the document owner" expression: "document.owner == // request.auth.claims.email" Example (Logic): title: "Public documents" // description: "Determine whether the document should be publicly visible" // expression: "document.type != 'private' && document.type != 'internal'" // Example (Data Manipulation): title: "Notification string" description: // "Create a notification string with a timestamp." expression: "'New message // received at ' + string(document.create_time)" The exact variables and // functions that may be referenced within an expression are determined by the // service that evaluates it. See the service documentation for additional // information. type Expr struct { // Description: Optional. Description of the expression. This is a longer text // which describes the expression, e.g. when hovered over it in a UI. Description string `json:"description,omitempty"` // Expression: Textual representation of an expression in Common Expression // Language syntax. Expression string `json:"expression,omitempty"` // Location: Optional. String indicating the location of the expression for // error reporting, e.g. a file name and a position in the file. Location string `json:"location,omitempty"` // Title: Optional. Title for the expression, i.e. a short string describing // its purpose. This can be used e.g. in UIs which allow to enter the // expression. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Expr) MarshalJSON() ([]byte, error) { type NoMethod Expr return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Field: A single field of a message type. type Field struct { // Cardinality: The field cardinality. // // Possible values: // "CARDINALITY_UNKNOWN" - For fields with unknown cardinality. // "CARDINALITY_OPTIONAL" - For optional fields. // "CARDINALITY_REQUIRED" - For required fields. Proto2 syntax only. // "CARDINALITY_REPEATED" - For repeated fields. Cardinality string `json:"cardinality,omitempty"` // DefaultValue: The string value of the default value of this field. Proto2 // syntax only. DefaultValue string `json:"defaultValue,omitempty"` // JsonName: The field JSON name. JsonName string `json:"jsonName,omitempty"` // Kind: The field type. // // Possible values: // "TYPE_UNKNOWN" - Field type unknown. // "TYPE_DOUBLE" - Field type double. // "TYPE_FLOAT" - Field type float. // "TYPE_INT64" - Field type int64. // "TYPE_UINT64" - Field type uint64. // "TYPE_INT32" - Field type int32. // "TYPE_FIXED64" - Field type fixed64. // "TYPE_FIXED32" - Field type fixed32. // "TYPE_BOOL" - Field type bool. // "TYPE_STRING" - Field type string. // "TYPE_GROUP" - Field type group. Proto2 syntax only, and deprecated. // "TYPE_MESSAGE" - Field type message. // "TYPE_BYTES" - Field type bytes. // "TYPE_UINT32" - Field type uint32. // "TYPE_ENUM" - Field type enum. // "TYPE_SFIXED32" - Field type sfixed32. // "TYPE_SFIXED64" - Field type sfixed64. // "TYPE_SINT32" - Field type sint32. // "TYPE_SINT64" - Field type sint64. Kind string `json:"kind,omitempty"` // Name: The field name. Name string `json:"name,omitempty"` // Number: The field number. Number int64 `json:"number,omitempty"` // OneofIndex: The index of the field type in `Type.oneofs`, for message or // enumeration types. The first type has index 1; zero means the type is not in // the list. OneofIndex int64 `json:"oneofIndex,omitempty"` // Options: The protocol buffer options. Options []*Option `json:"options,omitempty"` // Packed: Whether to use alternative packed wire representation. Packed bool `json:"packed,omitempty"` // TypeUrl: The field type URL, without the scheme, for message or enumeration // types. Example: "type.googleapis.com/google.protobuf.Timestamp". TypeUrl string `json:"typeUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "Cardinality") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Cardinality") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Field) MarshalJSON() ([]byte, error) { type NoMethod Field return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // FieldPolicy: Google API Policy Annotation This message defines a simple API // policy annotation that can be used to annotate API request and response // message fields with applicable policies. One field may have multiple // applicable policies that must all be satisfied before a request can be // processed. This policy annotation is used to generate the overall policy // that will be used for automatic runtime policy enforcement and documentation // generation. type FieldPolicy struct { // ResourcePermission: Specifies the required permission(s) for the resource // referred to by the field. It requires the field contains a valid resource // reference, and the request must pass the permission checks to proceed. For // example, "resourcemanager.projects.get". ResourcePermission string `json:"resourcePermission,omitempty"` // ResourceType: Specifies the resource type for the resource referred to by // the field. ResourceType string `json:"resourceType,omitempty"` // Selector: Selects one or more request or response message fields to apply // this `FieldPolicy`. When a `FieldPolicy` is used in proto annotation, the // selector must be left as empty. The service config generator will // automatically fill the correct value. When a `FieldPolicy` is used in // service config, the selector must be a comma-separated string with valid // request or response field paths, such as "foo.bar" or "foo.bar,foo.baz". Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourcePermission") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ResourcePermission") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *FieldPolicy) MarshalJSON() ([]byte, error) { type NoMethod FieldPolicy return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // FlowErrorDetails: Encapsulation of flow-specific error details for // debugging. Used as a details field on an error Status, not intended for // external use. type FlowErrorDetails struct { // ExceptionType: The type of exception (as a class name). ExceptionType string `json:"exceptionType,omitempty"` // FlowStepId: The step that failed. FlowStepId string `json:"flowStepId,omitempty"` // ForceSendFields is a list of field names (e.g. "ExceptionType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ExceptionType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *FlowErrorDetails) MarshalJSON() ([]byte, error) { type NoMethod FlowErrorDetails return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GenerateConfigReportRequest: Request message for GenerateConfigReport // method. type GenerateConfigReportRequest struct { // NewConfig: Required. Service configuration for which we want to generate the // report. For this version of API, the supported types are // google.api.servicemanagement.v1.ConfigRef, // google.api.servicemanagement.v1.ConfigSource, and google.api.Service NewConfig googleapi.RawMessage `json:"newConfig,omitempty"` // OldConfig: Optional. Service configuration against which the comparison will // be done. For this version of API, the supported types are // google.api.servicemanagement.v1.ConfigRef, // google.api.servicemanagement.v1.ConfigSource, and google.api.Service OldConfig googleapi.RawMessage `json:"oldConfig,omitempty"` // ForceSendFields is a list of field names (e.g. "NewConfig") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NewConfig") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GenerateConfigReportRequest) MarshalJSON() ([]byte, error) { type NoMethod GenerateConfigReportRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GenerateConfigReportResponse: Response message for GenerateConfigReport // method. type GenerateConfigReportResponse struct { // ChangeReports: list of ChangeReport, each corresponding to comparison // between two service configurations. ChangeReports []*ChangeReport `json:"changeReports,omitempty"` // Diagnostics: Errors / Linter warnings associated with the service definition // this report belongs to. Diagnostics []*Diagnostic `json:"diagnostics,omitempty"` // Id: ID of the service configuration this report belongs to. Id string `json:"id,omitempty"` // ServiceName: Name of the service this report belongs to. ServiceName string `json:"serviceName,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ChangeReports") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ChangeReports") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GenerateConfigReportResponse) MarshalJSON() ([]byte, error) { type NoMethod GenerateConfigReportResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GetIamPolicyRequest: Request message for `GetIamPolicy` method. type GetIamPolicyRequest struct { // Options: OPTIONAL: A `GetPolicyOptions` object for specifying options to // `GetIamPolicy`. Options *GetPolicyOptions `json:"options,omitempty"` // ForceSendFields is a list of field names (e.g. "Options") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Options") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GetIamPolicyRequest) MarshalJSON() ([]byte, error) { type NoMethod GetIamPolicyRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GetPolicyOptions: Encapsulates settings provided to GetIamPolicy. type GetPolicyOptions struct { // RequestedPolicyVersion: Optional. The maximum policy version that will be // used to format the policy. Valid values are 0, 1, and 3. Requests specifying // an invalid value will be rejected. Requests for policies with any // conditional role bindings must specify version 3. Policies with no // conditional role bindings may specify any valid value or leave the field // unset. The policy in the response might use the policy version that you // specified, or it might use a lower policy version. For example, if you // specify version 3, but the policy has no conditional role bindings, the // response uses version 1. To learn which resources support conditions in // their IAM policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). RequestedPolicyVersion int64 `json:"requestedPolicyVersion,omitempty"` // ForceSendFields is a list of field names (e.g. "RequestedPolicyVersion") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "RequestedPolicyVersion") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GetPolicyOptions) MarshalJSON() ([]byte, error) { type NoMethod GetPolicyOptions return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // GoSettings: Settings for Go client libraries. type GoSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *GoSettings) MarshalJSON() ([]byte, error) { type NoMethod GoSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Http: Defines the HTTP configuration for an API service. It contains a list // of HttpRule, each specifying the mapping of an RPC method to one or more // HTTP REST API methods. type Http struct { // FullyDecodeReservedExpansion: When set to true, URL path parameters will be // fully URI-decoded except in cases of single segment matches in reserved // expansion, where "%2F" will be left encoded. The default behavior is to not // decode RFC 6570 reserved characters in multi segment matches. FullyDecodeReservedExpansion bool `json:"fullyDecodeReservedExpansion,omitempty"` // Rules: A list of HTTP configuration rules that apply to individual API // methods. **NOTE:** All service configuration rules follow "last one wins" // order. Rules []*HttpRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. // "FullyDecodeReservedExpansion") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields // for more details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FullyDecodeReservedExpansion") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Http) MarshalJSON() ([]byte, error) { type NoMethod Http return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // HttpRule: # gRPC Transcoding gRPC Transcoding is a feature for mapping // between a gRPC method and one or more HTTP REST endpoints. It allows // developers to build a single API service that supports both gRPC APIs and // REST APIs. Many systems, including Google APIs // (https://github.com/googleapis/googleapis), Cloud Endpoints // (https://cloud.google.com/endpoints), gRPC Gateway // (https://github.com/grpc-ecosystem/grpc-gateway), and Envoy // (https://github.com/envoyproxy/envoy) proxy support this feature and use it // for large scale production services. `HttpRule` defines the schema of the // gRPC/REST mapping. The mapping specifies how different portions of the gRPC // request message are mapped to the URL path, URL query parameters, and HTTP // request body. It also controls how the gRPC response message is mapped to // the HTTP response body. `HttpRule` is typically specified as an // `google.api.http` annotation on the gRPC method. Each mapping specifies a // URL path template and an HTTP method. The path template may refer to one or // more fields in the gRPC request message, as long as each field is a // non-repeated field with a primitive (non-message) type. The path template // controls how fields of the request message are mapped to the URL path. // Example: service Messaging { rpc GetMessage(GetMessageRequest) returns // (Message) { option (google.api.http) = { get: "/v1/{name=messages/*}" }; } } // message GetMessageRequest { string name = 1; // Mapped to URL path. } // message Message { string text = 1; // The resource content. } This enables // an HTTP REST to gRPC mapping as below: HTTP | gRPC -----|----- `GET // /v1/messages/123456` | `GetMessage(name: "messages/123456")` Any fields in // the request message which are not bound by the path template automatically // become HTTP query parameters if there is no HTTP request body. For example: // service Messaging { rpc GetMessage(GetMessageRequest) returns (Message) { // option (google.api.http) = { get:"/v1/messages/{message_id}" }; } } message // GetMessageRequest { message SubMessage { string subfield = 1; } string // message_id = 1; // Mapped to URL path. int64 revision = 2; // Mapped to URL // query parameter `revision`. SubMessage sub = 3; // Mapped to URL query // parameter `sub.subfield`. } This enables a HTTP JSON to RPC mapping as // below: HTTP | gRPC -----|----- `GET // /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: // "123456" revision: 2 sub: SubMessage(subfield: "foo"))` Note that fields // which are mapped to URL query parameters must have a primitive type or a // repeated primitive type or a non-repeated message type. In the case of a // repeated type, the parameter can be repeated in the URL as // `...?param=A¶m=B`. In the case of a message type, each field of the // message is mapped to a separate parameter, such as // `...?foo.a=A&foo.b=B&foo.c=C`. For HTTP methods that allow a request body, // the `body` field specifies the mapping. Consider a REST update method on the // message resource collection: service Messaging { rpc // UpdateMessage(UpdateMessageRequest) returns (Message) { option // (google.api.http) = { patch: "/v1/messages/{message_id}" body: "message" }; // } } message UpdateMessageRequest { string message_id = 1; // mapped to the // URL Message message = 2; // mapped to the body } The following HTTP JSON to // RPC mapping is enabled, where the representation of the JSON in the request // body is determined by protos JSON encoding: HTTP | gRPC -----|----- `PATCH // /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" // message { text: "Hi!" })` The special name `*` can be used in the body // mapping to define that every field not bound by the path template should be // mapped to the request body. This enables the following alternative // definition of the update method: service Messaging { rpc // UpdateMessage(Message) returns (Message) { option (google.api.http) = { // patch: "/v1/messages/{message_id}" body: "*" }; } } message Message { string // message_id = 1; string text = 2; } The following HTTP JSON to RPC mapping is // enabled: HTTP | gRPC -----|----- `PATCH /v1/messages/123456 { "text": "Hi!" // }` | `UpdateMessage(message_id: "123456" text: "Hi!")` Note that when using // `*` in the body mapping, it is not possible to have HTTP parameters, as all // fields not bound by the path end in the body. This makes this option more // rarely used in practice when defining REST APIs. The common usage of `*` is // in custom methods which don't use the URL at all for transferring data. It // is possible to define multiple HTTP methods for one RPC by using the // `additional_bindings` option. Example: service Messaging { rpc // GetMessage(GetMessageRequest) returns (Message) { option (google.api.http) = // { get: "/v1/messages/{message_id}" additional_bindings { get: // "/v1/users/{user_id}/messages/{message_id}" } }; } } message // GetMessageRequest { string message_id = 1; string user_id = 2; } This // enables the following two alternative HTTP JSON to RPC mappings: HTTP | gRPC // -----|----- `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` // `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: // "123456")` ## Rules for HTTP mapping 1. Leaf request fields (recursive // expansion nested messages in the request message) are classified into three // categories: - Fields referred by the path template. They are passed via the // URL path. - Fields referred by the HttpRule.body. They are passed via the // HTTP request body. - All other fields are passed via the URL query // parameters, and the parameter name is the field path in the request message. // A repeated field can be represented as multiple query parameters under the // same name. 2. If HttpRule.body is "*", there is no URL query parameter, all // fields are passed via URL path and HTTP request body. 3. If HttpRule.body is // omitted, there is no HTTP request body, all fields are passed via URL path // and URL query parameters. ### Path template syntax Template = "/" Segments [ // Verb ] ; Segments = Segment { "/" Segment } ; Segment = "*" | "**" | LITERAL // | Variable ; Variable = "{" FieldPath [ "=" Segments ] "}" ; FieldPath = // IDENT { "." IDENT } ; Verb = ":" LITERAL ; The syntax `*` matches a single // URL path segment. The syntax `**` matches zero or more URL path segments, // which must be the last part of the URL path except the `Verb`. The syntax // `Variable` matches part of the URL path as specified by its template. A // variable template must not contain other variables. If a variable matches a // single path segment, its template may be omitted, e.g. `{var}` is equivalent // to `{var=*}`. The syntax `LITERAL` matches literal text in the URL path. If // the `LITERAL` contains any reserved character, such characters should be // percent-encoded before the matching. If a variable contains exactly one path // segment, such as "{var}" or "{var=*}", when such a variable is expanded // into a URL path on the client side, all characters except `[-_.~0-9a-zA-Z]` // are percent-encoded. The server side does the reverse decoding. Such // variables show up in the Discovery Document // (https://developers.google.com/discovery/v1/reference/apis) as `{var}`. If a // variable contains multiple path segments, such as "{var=foo/*}" or // "{var=**}", when such a variable is expanded into a URL path on the client // side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. The // server side does the reverse decoding, except "%2F" and "%2f" are left // unchanged. Such variables show up in the Discovery Document // (https://developers.google.com/discovery/v1/reference/apis) as `{+var}`. ## // Using gRPC API Service Configuration gRPC API Service Configuration (service // config) is a configuration language for configuring a gRPC service to become // a user-facing product. The service config is simply the YAML representation // of the `google.api.Service` proto message. As an alternative to annotating // your proto file, you can configure gRPC transcoding in your service config // YAML files. You do this by specifying a `HttpRule` that maps the gRPC method // to a REST endpoint, achieving the same effect as the proto annotation. This // can be particularly useful if you have a proto that is reused in multiple // services. Note that any transcoding specified in the service config will // override any matching transcoding configuration in the proto. Example: http: // rules: # Selects a gRPC method and applies HttpRule to it. - selector: // example.v1.Messaging.GetMessage get: // /v1/messages/{message_id}/{sub.subfield} ## Special notes When gRPC // Transcoding is used to map a gRPC to JSON REST endpoints, the proto to JSON // conversion must follow the proto3 specification // (https://developers.google.com/protocol-buffers/docs/proto3#json). While the // single segment variable follows the semantics of RFC 6570 // (https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String Expansion, // the multi segment variable **does not** follow RFC 6570 Section 3.2.3 // Reserved Expansion. The reason is that the Reserved Expansion does not // expand special characters like `?` and `#`, which would lead to invalid // URLs. As the result, gRPC Transcoding uses a custom encoding for multi // segment variables. The path variables **must not** refer to any repeated or // mapped field, because client libraries are not capable of handling such // variable expansion. The path variables **must not** capture the leading "/" // character. The reason is that the most common use case "{var}" does not // capture the leading "/" character. For consistency, all path variables must // share the same behavior. Repeated message fields must not be mapped to URL // query parameters, because no client library can support such complicated // mapping. If an API needs to use a JSON array for request or response body, // it can map the request or response body to a repeated field. However, some // gRPC Transcoding implementations may not support this feature. type HttpRule struct { // AdditionalBindings: Additional HTTP bindings for the selector. Nested // bindings must not contain an `additional_bindings` field themselves (that // is, the nesting may only be one level deep). AdditionalBindings []*HttpRule `json:"additionalBindings,omitempty"` // Body: The name of the request field whose value is mapped to the HTTP // request body, or `*` for mapping all request fields not captured by the path // pattern to the HTTP body, or omitted for not having any HTTP request body. // NOTE: the referred field must be present at the top-level of the request // message type. Body string `json:"body,omitempty"` // Custom: The custom pattern is used for specifying an HTTP method that is not // included in the `pattern` field, such as HEAD, or "*" to leave the HTTP // method unspecified for this rule. The wild-card rule is useful for services // that provide content to Web (HTML) clients. Custom *CustomHttpPattern `json:"custom,omitempty"` // Delete: Maps to HTTP DELETE. Used for deleting a resource. Delete string `json:"delete,omitempty"` // Get: Maps to HTTP GET. Used for listing and getting information about // resources. Get string `json:"get,omitempty"` // Patch: Maps to HTTP PATCH. Used for updating a resource. Patch string `json:"patch,omitempty"` // Post: Maps to HTTP POST. Used for creating a resource or performing an // action. Post string `json:"post,omitempty"` // Put: Maps to HTTP PUT. Used for replacing a resource. Put string `json:"put,omitempty"` // ResponseBody: Optional. The name of the response field whose value is mapped // to the HTTP response body. When omitted, the entire response message will be // used as the HTTP response body. NOTE: The referred field must be present at // the top-level of the response message type. ResponseBody string `json:"responseBody,omitempty"` // Selector: Selects a method to which this rule applies. Refer to selector for // syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "AdditionalBindings") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AdditionalBindings") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *HttpRule) MarshalJSON() ([]byte, error) { type NoMethod HttpRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // JavaSettings: Settings for Java client libraries. type JavaSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // LibraryPackage: The package name to use in Java. Clobbers the java_package // option set in the protobuf. This should be used **only** by APIs who have // already set the language_settings.java.package_name" field in gapic.yaml. // API teams should use the protobuf java_package option where possible. // Example of a YAML configuration:: publishing: java_settings: // library_package: com.google.cloud.pubsub.v1 LibraryPackage string `json:"libraryPackage,omitempty"` // ServiceClassNames: Configure the Java class name to use instead of the // service's for its corresponding generated GAPIC client. Keys are // fully-qualified service names as they appear in the protobuf (including the // full the language_settings.java.interface_names" field in gapic.yaml. API // teams should otherwise use the service name as it appears in the protobuf. // Example of a YAML configuration:: publishing: java_settings: // service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - // google.pubsub.v1.Subscriber: SubscriptionAdmin ServiceClassNames map[string]string `json:"serviceClassNames,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *JavaSettings) MarshalJSON() ([]byte, error) { type NoMethod JavaSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // JwtLocation: Specifies a location to extract JWT from an API request. type JwtLocation struct { // Cookie: Specifies cookie name to extract JWT token. Cookie string `json:"cookie,omitempty"` // Header: Specifies HTTP header name to extract JWT token. Header string `json:"header,omitempty"` // Query: Specifies URL query parameter name to extract JWT token. Query string `json:"query,omitempty"` // ValuePrefix: The value prefix. The value format is "value_prefix{token}" // Only applies to "in" header type. Must be empty for "in" query type. If not // empty, the header value has to match (case sensitive) this prefix. If not // matched, JWT will not be extracted. If matched, JWT will be extracted after // the prefix is removed. For example, for "Authorization: Bearer {JWT}", // value_prefix="Bearer " with a space at the end. ValuePrefix string `json:"valuePrefix,omitempty"` // ForceSendFields is a list of field names (e.g. "Cookie") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Cookie") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *JwtLocation) MarshalJSON() ([]byte, error) { type NoMethod JwtLocation return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // LabelDescriptor: A description of a label. type LabelDescriptor struct { // Description: A human-readable description for the label. Description string `json:"description,omitempty"` // Key: The label key. Key string `json:"key,omitempty"` // ValueType: The type of data that can be assigned to the label. // // Possible values: // "STRING" - A variable-length string. This is the default. // "BOOL" - Boolean; true or false. // "INT64" - A 64-bit signed integer. ValueType string `json:"valueType,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *LabelDescriptor) MarshalJSON() ([]byte, error) { type NoMethod LabelDescriptor return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListOperationsResponse: The response message for Operations.ListOperations. type ListOperationsResponse struct { // NextPageToken: The standard List next-page token. NextPageToken string `json:"nextPageToken,omitempty"` // Operations: A list of operations that matches the specified filter in the // request. Operations []*Operation `json:"operations,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListOperationsResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListServiceConfigsResponse: Response message for ListServiceConfigs method. type ListServiceConfigsResponse struct { // NextPageToken: The token of the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` // ServiceConfigs: The list of service configuration resources. ServiceConfigs []*Service `json:"serviceConfigs,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListServiceConfigsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListServiceConfigsResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListServiceRolloutsResponse: Response message for ListServiceRollouts // method. type ListServiceRolloutsResponse struct { // NextPageToken: The token of the next page of results. NextPageToken string `json:"nextPageToken,omitempty"` // Rollouts: The list of rollout resources. Rollouts []*Rollout `json:"rollouts,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListServiceRolloutsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListServiceRolloutsResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ListServicesResponse: Response message for `ListServices` method. type ListServicesResponse struct { // NextPageToken: Token that can be passed to `ListServices` to resume a // paginated query. NextPageToken string `json:"nextPageToken,omitempty"` // Services: The returned services will only have the name field set. Services []*ManagedService `json:"services,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ListServicesResponse) MarshalJSON() ([]byte, error) { type NoMethod ListServicesResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // LogDescriptor: A description of a log type. Example in YAML format: - name: // library.googleapis.com/activity_history description: The history of // borrowing and returning library items. display_name: Activity labels: - key: // /customer_id description: Identifier of a library customer type LogDescriptor struct { // Description: A human-readable description of this log. This information // appears in the documentation and can contain details. Description string `json:"description,omitempty"` // DisplayName: The human-readable name for this log. This information appears // on the user interface and should be concise. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that are available to describe a specific log // entry. Runtime requests that contain labels not specified here are // considered invalid. Labels []*LabelDescriptor `json:"labels,omitempty"` // Name: The name of the log. It must be less than 512 characters long and can // include the following characters: upper- and lower-case alphanumeric // characters [A-Za-z0-9], and punctuation characters including slash, // underscore, hyphen, period [/_-.]. Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *LogDescriptor) MarshalJSON() ([]byte, error) { type NoMethod LogDescriptor return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Logging: Logging configuration of the service. The following example shows // how to configure logs to be sent to the producer and consumer projects. In // the example, the `activity_history` log is sent to both the producer and // consumer projects, whereas the `purchase_history` log is only sent to the // producer project. monitored_resources: - type: library.googleapis.com/branch // labels: - key: /city description: The city where the library branch is // located in. - key: /name description: The name of the branch. logs: - name: // activity_history labels: - key: /customer_id - name: purchase_history // logging: producer_destinations: - monitored_resource: // library.googleapis.com/branch logs: - activity_history - purchase_history // consumer_destinations: - monitored_resource: library.googleapis.com/branch // logs: - activity_history type Logging struct { // ConsumerDestinations: Logging configurations for sending logs to the // consumer project. There can be multiple consumer destinations, each one must // have a different monitored resource type. A log can be used in at most one // consumer destination. ConsumerDestinations []*LoggingDestination `json:"consumerDestinations,omitempty"` // ProducerDestinations: Logging configurations for sending logs to the // producer project. There can be multiple producer destinations, each one must // have a different monitored resource type. A log can be used in at most one // producer destination. ProducerDestinations []*LoggingDestination `json:"producerDestinations,omitempty"` // ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ConsumerDestinations") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Logging) MarshalJSON() ([]byte, error) { type NoMethod Logging return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // LoggingDestination: Configuration of a specific logging destination (the // producer project or the consumer project). type LoggingDestination struct { // Logs: Names of the logs to be sent to this destination. Each name must be // defined in the Service.logs section. If the log name is not a domain scoped // name, it will be automatically prefixed with the service name followed by // "/". Logs []string `json:"logs,omitempty"` // MonitoredResource: The monitored resource type. The type must be defined in // the Service.monitored_resources section. MonitoredResource string `json:"monitoredResource,omitempty"` // ForceSendFields is a list of field names (e.g. "Logs") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Logs") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *LoggingDestination) MarshalJSON() ([]byte, error) { type NoMethod LoggingDestination return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // LongRunning: Describes settings to use when generating API methods that use // the long-running operation pattern. All default values below are from those // used in the client library generators (e.g. Java // (https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)). type LongRunning struct { // InitialPollDelay: Initial delay after which the first poll request will be // made. Default value: 5 seconds. InitialPollDelay string `json:"initialPollDelay,omitempty"` // MaxPollDelay: Maximum time between two subsequent poll requests. Default // value: 45 seconds. MaxPollDelay string `json:"maxPollDelay,omitempty"` // PollDelayMultiplier: Multiplier to gradually increase delay between // subsequent polls until it reaches max_poll_delay. Default value: 1.5. PollDelayMultiplier float64 `json:"pollDelayMultiplier,omitempty"` // TotalPollTimeout: Total polling timeout. Default value: 5 minutes. TotalPollTimeout string `json:"totalPollTimeout,omitempty"` // ForceSendFields is a list of field names (e.g. "InitialPollDelay") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "InitialPollDelay") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *LongRunning) MarshalJSON() ([]byte, error) { type NoMethod LongRunning return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } func (s *LongRunning) UnmarshalJSON(data []byte) error { type NoMethod LongRunning var s1 struct { PollDelayMultiplier gensupport.JSONFloat64 `json:"pollDelayMultiplier"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.PollDelayMultiplier = float64(s1.PollDelayMultiplier) return nil } // ManagedService: The full representation of a Service that is managed by // Google Service Management. type ManagedService struct { // ProducerProjectId: ID of the project that produces and owns this service. ProducerProjectId string `json:"producerProjectId,omitempty"` // ServiceName: The name of the service. See the overview // (https://cloud.google.com/service-infrastructure/docs/overview) for naming // requirements. ServiceName string `json:"serviceName,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ProducerProjectId") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ProducerProjectId") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ManagedService) MarshalJSON() ([]byte, error) { type NoMethod ManagedService return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Method: Method represents a method of an API interface. type Method struct { // Name: The simple name of this method. Name string `json:"name,omitempty"` // Options: Any metadata attached to the method. Options []*Option `json:"options,omitempty"` // RequestStreaming: If true, the request is streamed. RequestStreaming bool `json:"requestStreaming,omitempty"` // RequestTypeUrl: A URL of the input message type. RequestTypeUrl string `json:"requestTypeUrl,omitempty"` // ResponseStreaming: If true, the response is streamed. ResponseStreaming bool `json:"responseStreaming,omitempty"` // ResponseTypeUrl: The URL of the output message type. ResponseTypeUrl string `json:"responseTypeUrl,omitempty"` // Syntax: The source syntax of this method. // // Possible values: // "SYNTAX_PROTO2" - Syntax `proto2`. // "SYNTAX_PROTO3" - Syntax `proto3`. // "SYNTAX_EDITIONS" - Syntax `editions`. Syntax string `json:"syntax,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Method) MarshalJSON() ([]byte, error) { type NoMethod Method return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MethodPolicy: Defines policies applying to an RPC method. type MethodPolicy struct { // RequestPolicies: Policies that are applicable to the request message. RequestPolicies []*FieldPolicy `json:"requestPolicies,omitempty"` // Selector: Selects a method to which these policies should be enforced, for // example, "google.pubsub.v1.Subscriber.CreateSubscription". Refer to selector // for syntax details. NOTE: This field must not be set in the proto // annotation. It will be automatically filled by the service config compiler . Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "RequestPolicies") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "RequestPolicies") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MethodPolicy) MarshalJSON() ([]byte, error) { type NoMethod MethodPolicy return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MethodSettings: Describes the generator configuration for a method. type MethodSettings struct { // AutoPopulatedFields: List of top-level fields of the request message, that // should be automatically populated by the client libraries based on their // (google.api.field_info).format. Currently supported format: UUID4. Example // of a YAML configuration: publishing: method_settings: - selector: // google.example.v1.ExampleService.CreateExample auto_populated_fields: - // request_id AutoPopulatedFields []string `json:"autoPopulatedFields,omitempty"` // LongRunning: Describes settings to use for long-running operations when // generating API methods for RPCs. Complements RPCs that use the annotations // in google/longrunning/operations.proto. Example of a YAML configuration:: // publishing: method_settings: - selector: // google.cloud.speech.v2.Speech.BatchRecognize long_running: // initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 // max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes LongRunning *LongRunning `json:"longRunning,omitempty"` // Selector: The fully qualified name of the method, for which the options // below apply. This is used to find the method to apply the options. Example: // publishing: method_settings: - selector: // google.storage.control.v2.StorageControl.CreateFolder # method settings for // CreateFolder... Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "AutoPopulatedFields") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AutoPopulatedFields") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MethodSettings) MarshalJSON() ([]byte, error) { type NoMethod MethodSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MetricDescriptor: Defines a metric type and its schema. Once a metric // descriptor is created, deleting or altering it stops data collection and // makes the metric type's existing data unusable. type MetricDescriptor struct { // Description: A detailed description of the metric, which can be used in // documentation. Description string `json:"description,omitempty"` // DisplayName: A concise name for the metric, which can be displayed in user // interfaces. Use sentence case without an ending period, for example "Request // count". This field is optional but it is recommended to be set for any // metrics associated with user-visible concepts, such as Quota. DisplayName string `json:"displayName,omitempty"` // Labels: The set of labels that can be used to describe a specific instance // of this metric type. For example, the // `appengine.googleapis.com/http/server/response_latencies` metric type has a // label for the HTTP response code, `response_code`, so you can look at // latencies for successful responses or just for responses that failed. Labels []*LabelDescriptor `json:"labels,omitempty"` // LaunchStage: Optional. The launch stage of the metric definition. // // Possible values: // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use // it. // "PRELAUNCH" - Prelaunch features are hidden from users and are only // visible internally. // "EARLY_ACCESS" - Early Access features are limited to a closed group of // testers. To use these features, you must sign up in advance and sign a // Trusted Tester agreement (which includes confidentiality provisions). These // features may be unstable, changed in backward-incompatible ways, and are not // guaranteed to be released. // "ALPHA" - Alpha is a limited availability test for releases before they // are cleared for widespread use. By Alpha, all significant design issues are // resolved and we are in the process of verifying functionality. Alpha // customers need to apply for access, agree to applicable terms, and have // their projects allowlisted. Alpha releases don't have to be feature // complete, no SLAs are provided, and there are no technical support // obligations, but they will be far enough along that customers can actually // use them in test environments or for limited-use tests -- just like they // would in normal production cases. // "BETA" - Beta is the point at which we are ready to open a release for any // customer to use. There are no SLA or technical support obligations in a Beta // release. Products will be complete from a feature perspective, but may have // some open outstanding issues. Beta releases are suitable for limited // production use cases. // "GA" - GA features are open to all developers and are considered stable // and fully qualified for production use. // "DEPRECATED" - Deprecated features are scheduled to be shut down and // removed. For more information, see the "Deprecation Policy" section of our // [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud // Platform Subject to the Deprecation // Policy](https://cloud.google.com/terms/deprecation) documentation. LaunchStage string `json:"launchStage,omitempty"` // Metadata: Optional. Metadata which can be used to guide usage of the metric. Metadata *MetricDescriptorMetadata `json:"metadata,omitempty"` // MetricKind: Whether the metric records instantaneous values, changes to a // value, etc. Some combinations of `metric_kind` and `value_type` might not be // supported. // // Possible values: // "METRIC_KIND_UNSPECIFIED" - Do not use this default value. // "GAUGE" - An instantaneous measurement of a value. // "DELTA" - The change in a value during a time interval. // "CUMULATIVE" - A value accumulated over a time interval. Cumulative // measurements in a time series should have the same start time and increasing // end times, until an event resets the cumulative value to zero and sets a new // start time for the following points. MetricKind string `json:"metricKind,omitempty"` // MonitoredResourceTypes: Read-only. If present, then a time series, which is // identified partially by a metric type and a MonitoredResourceDescriptor, // that is associated with this metric type can only be associated with one of // the monitored resource types listed here. MonitoredResourceTypes []string `json:"monitoredResourceTypes,omitempty"` // Name: The resource name of the metric descriptor. Name string `json:"name,omitempty"` // Type: The metric type, including its DNS name prefix. The type is not // URL-encoded. All user-defined metric types have the DNS name // `custom.googleapis.com` or `external.googleapis.com`. Metric types should // use a natural hierarchical grouping. For example: // "custom.googleapis.com/invoice/paid/amount" // "external.googleapis.com/prometheus/up" // "appengine.googleapis.com/http/server/response_latencies" Type string `json:"type,omitempty"` // Unit: The units in which the metric value is reported. It is only applicable // if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` // defines the representation of the stored metric values. Different systems // might scale the values to be more easily displayed (so a value of `0.02kBy` // _might_ be displayed as `20By`, and a value of `3523kBy` _might_ be // displayed as `3.5MBy`). However, if the `unit` is `kBy`, then the value of // the metric is always in thousands of bytes, no matter how it might be // displayed. If you want a custom metric to record the exact number of // CPU-seconds used by a job, you can create an `INT64 CUMULATIVE` metric whose // `unit` is `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses // 12,005 CPU-seconds, then the value is written as `12005`. Alternatively, if // you want a custom metric to record data in a more granular way, you can // create a `DOUBLE CUMULATIVE` metric whose `unit` is `ks{CPU}`, and then // write the value `12.005` (which is `12005/1000`), or use `Kis{CPU}` and // write `11.723` (which is `12005/1024`). The supported units are a subset of // The Unified Code for Units of Measure (https://unitsofmeasure.org/ucum.html) // standard: **Basic units (UNIT)** * `bit` bit * `By` byte * `s` second * // `min` minute * `h` hour * `d` day * `1` dimensionless **Prefixes (PREFIX)** // * `k` kilo (10^3) * `M` mega (10^6) * `G` giga (10^9) * `T` tera (10^12) * // `P` peta (10^15) * `E` exa (10^18) * `Z` zetta (10^21) * `Y` yotta (10^24) * // `m` milli (10^-3) * `u` micro (10^-6) * `n` nano (10^-9) * `p` pico (10^-12) // * `f` femto (10^-15) * `a` atto (10^-18) * `z` zepto (10^-21) * `y` yocto // (10^-24) * `Ki` kibi (2^10) * `Mi` mebi (2^20) * `Gi` gibi (2^30) * `Ti` // tebi (2^40) * `Pi` pebi (2^50) **Grammar** The grammar also includes these // connectors: * `/` division or ratio (as an infix operator). For examples, // `kBy/{email}` or `MiBy/10ms` (although you should almost never have `/s` in // a metric `unit`; rates should always be computed at query time from the // underlying cumulative or delta value). * `.` multiplication or composition // (as an infix operator). For examples, `GBy.d` or `k{watt}.h`. The grammar // for a unit is as follows: Expression = Component { "." Component } { "/" // Component } ; Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] | // Annotation | "1" ; Annotation = "{" NAME "}" ; Notes: * `Annotation` is just // a comment if it follows a `UNIT`. If the annotation is used alone, then the // unit is equivalent to `1`. For examples, `{request}/s == 1/s`, // `By{transmitted}/s == By/s`. * `NAME` is a sequence of non-blank printable // ASCII characters not containing `{` or `}`. * `1` represents a unitary // dimensionless unit (https://en.wikipedia.org/wiki/Dimensionless_quantity) of // 1, such as in `1/s`. It is typically used when none of the basic units are // appropriate. For example, "new users per day" can be represented as `1/d` or // `{new-users}/d` (and a metric value `5` would mean "5 new users). // Alternatively, "thousands of page views per day" would be represented as // `1000/d` or `k1/d` or `k{page_views}/d` (and a metric value of `5.3` would // mean "5300 page views per day"). * `%` represents dimensionless value of // 1/100, and annotates values giving a percentage (so the metric values are // typically in the range of 0..100, and a metric value `3` means "3 percent"). // * `10^2.%` indicates a metric contains a ratio, typically in the range 0..1, // that will be multiplied by 100 and displayed as a percentage (so a metric // value `0.03` means "3 percent"). Unit string `json:"unit,omitempty"` // ValueType: Whether the measurement is an integer, a floating-point number, // etc. Some combinations of `metric_kind` and `value_type` might not be // supported. // // Possible values: // "VALUE_TYPE_UNSPECIFIED" - Do not use this default value. // "BOOL" - The value is a boolean. This value type can be used only if the // metric kind is `GAUGE`. // "INT64" - The value is a signed 64-bit integer. // "DOUBLE" - The value is a double precision floating point number. // "STRING" - The value is a text string. This value type can be used only if // the metric kind is `GAUGE`. // "DISTRIBUTION" - The value is a `Distribution`. // "MONEY" - The value is money. ValueType string `json:"valueType,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MetricDescriptor) MarshalJSON() ([]byte, error) { type NoMethod MetricDescriptor return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MetricDescriptorMetadata: Additional annotations that can be used to guide // the usage of a metric. type MetricDescriptorMetadata struct { // IngestDelay: The delay of data points caused by ingestion. Data points older // than this age are guaranteed to be ingested and available to be read, // excluding data loss due to errors. IngestDelay string `json:"ingestDelay,omitempty"` // LaunchStage: Deprecated. Must use the MetricDescriptor.launch_stage instead. // // Possible values: // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use // it. // "PRELAUNCH" - Prelaunch features are hidden from users and are only // visible internally. // "EARLY_ACCESS" - Early Access features are limited to a closed group of // testers. To use these features, you must sign up in advance and sign a // Trusted Tester agreement (which includes confidentiality provisions). These // features may be unstable, changed in backward-incompatible ways, and are not // guaranteed to be released. // "ALPHA" - Alpha is a limited availability test for releases before they // are cleared for widespread use. By Alpha, all significant design issues are // resolved and we are in the process of verifying functionality. Alpha // customers need to apply for access, agree to applicable terms, and have // their projects allowlisted. Alpha releases don't have to be feature // complete, no SLAs are provided, and there are no technical support // obligations, but they will be far enough along that customers can actually // use them in test environments or for limited-use tests -- just like they // would in normal production cases. // "BETA" - Beta is the point at which we are ready to open a release for any // customer to use. There are no SLA or technical support obligations in a Beta // release. Products will be complete from a feature perspective, but may have // some open outstanding issues. Beta releases are suitable for limited // production use cases. // "GA" - GA features are open to all developers and are considered stable // and fully qualified for production use. // "DEPRECATED" - Deprecated features are scheduled to be shut down and // removed. For more information, see the "Deprecation Policy" section of our // [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud // Platform Subject to the Deprecation // Policy](https://cloud.google.com/terms/deprecation) documentation. LaunchStage string `json:"launchStage,omitempty"` // SamplePeriod: The sampling period of metric data points. For metrics which // are written periodically, consecutive data points are stored at this time // interval, excluding data loss due to errors. Metrics with a higher // granularity have a smaller sampling period. SamplePeriod string `json:"samplePeriod,omitempty"` // ForceSendFields is a list of field names (e.g. "IngestDelay") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "IngestDelay") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MetricDescriptorMetadata) MarshalJSON() ([]byte, error) { type NoMethod MetricDescriptorMetadata return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MetricRule: Bind API methods to metrics. Binding a method to a metric causes // that metric's configured quota behaviors to apply to the method call. type MetricRule struct { // MetricCosts: Metrics to update when the selected methods are called, and the // associated cost applied to each metric. The key of the map is the metric // name, and the values are the amount increased for the metric against which // the quota limits are defined. The value must not be negative. MetricCosts map[string]string `json:"metricCosts,omitempty"` // Selector: Selects the methods to which this rule applies. Refer to selector // for syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "MetricCosts") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MetricCosts") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MetricRule) MarshalJSON() ([]byte, error) { type NoMethod MetricRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Mixin: Declares an API Interface to be included in this interface. The // including interface must redeclare all the methods from the included // interface, but documentation and options are inherited as follows: - If // after comment and whitespace stripping, the documentation string of the // redeclared method is empty, it will be inherited from the original method. - // Each annotation belonging to the service config (http, visibility) which is // not set in the redeclared method will be inherited. - If an http annotation // is inherited, the path pattern will be modified as follows. Any version // prefix will be replaced by the version of the including interface plus the // root path if specified. Example of a simple mixin: package google.acl.v1; // service AccessControl { // Get the underlying ACL object. rpc // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = // "/v1/{resource=**}:getAcl"; } } package google.storage.v2; service Storage { // // rpc GetAcl(GetAclRequest) returns (Acl); // Get a data record. rpc // GetData(GetDataRequest) returns (Data) { option (google.api.http).get = // "/v2/{resource=**}"; } } Example of a mixin configuration: apis: - name: // google.storage.v2.Storage mixins: - name: google.acl.v1.AccessControl The // mixin construct implies that all methods in `AccessControl` are also // declared with same name and request/response types in `Storage`. A // documentation generator or annotation processor will see the effective // `Storage.GetAcl` method after inherting documentation and annotations as // follows: service Storage { // Get the underlying ACL object. rpc // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = // "/v2/{resource=**}:getAcl"; } ... } Note how the version in the path pattern // changed from `v1` to `v2`. If the `root` field in the mixin is specified, it // should be a relative path under which inherited HTTP paths are placed. // Example: apis: - name: google.storage.v2.Storage mixins: - name: // google.acl.v1.AccessControl root: acls This implies the following inherited // HTTP annotation: service Storage { // Get the underlying ACL object. rpc // GetAcl(GetAclRequest) returns (Acl) { option (google.api.http).get = // "/v2/acls/{resource=**}:getAcl"; } ... } type Mixin struct { // Name: The fully qualified name of the interface which is included. Name string `json:"name,omitempty"` // Root: If non-empty specifies a path under which inherited HTTP paths are // rooted. Root string `json:"root,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Mixin) MarshalJSON() ([]byte, error) { type NoMethod Mixin return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MonitoredResourceDescriptor: An object that describes the schema of a // MonitoredResource object using a type name and a set of labels. For example, // the monitored resource descriptor for Google Compute Engine VM instances has // a type of "gce_instance" and specifies the use of the labels // "instance_id" and "zone" to identify particular VM instances. Different // APIs can support different monitored resource types. APIs generally provide // a `list` method that returns the monitored resource descriptors used by the // API. type MonitoredResourceDescriptor struct { // Description: Optional. A detailed description of the monitored resource type // that might be used in documentation. Description string `json:"description,omitempty"` // DisplayName: Optional. A concise name for the monitored resource type that // might be displayed in user interfaces. It should be a Title Cased Noun // Phrase, without any article or other determiners. For example, "Google // Cloud SQL Database". DisplayName string `json:"displayName,omitempty"` // Labels: Required. A set of labels used to describe instances of this // monitored resource type. For example, an individual Google Cloud SQL // database is identified by values for the labels "database_id" and // "zone". Labels []*LabelDescriptor `json:"labels,omitempty"` // LaunchStage: Optional. The launch stage of the monitored resource // definition. // // Possible values: // "LAUNCH_STAGE_UNSPECIFIED" - Do not use this default value. // "UNIMPLEMENTED" - The feature is not yet implemented. Users can not use // it. // "PRELAUNCH" - Prelaunch features are hidden from users and are only // visible internally. // "EARLY_ACCESS" - Early Access features are limited to a closed group of // testers. To use these features, you must sign up in advance and sign a // Trusted Tester agreement (which includes confidentiality provisions). These // features may be unstable, changed in backward-incompatible ways, and are not // guaranteed to be released. // "ALPHA" - Alpha is a limited availability test for releases before they // are cleared for widespread use. By Alpha, all significant design issues are // resolved and we are in the process of verifying functionality. Alpha // customers need to apply for access, agree to applicable terms, and have // their projects allowlisted. Alpha releases don't have to be feature // complete, no SLAs are provided, and there are no technical support // obligations, but they will be far enough along that customers can actually // use them in test environments or for limited-use tests -- just like they // would in normal production cases. // "BETA" - Beta is the point at which we are ready to open a release for any // customer to use. There are no SLA or technical support obligations in a Beta // release. Products will be complete from a feature perspective, but may have // some open outstanding issues. Beta releases are suitable for limited // production use cases. // "GA" - GA features are open to all developers and are considered stable // and fully qualified for production use. // "DEPRECATED" - Deprecated features are scheduled to be shut down and // removed. For more information, see the "Deprecation Policy" section of our // [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud // Platform Subject to the Deprecation // Policy](https://cloud.google.com/terms/deprecation) documentation. LaunchStage string `json:"launchStage,omitempty"` // Name: Optional. The resource name of the monitored resource descriptor: // "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} // is the value of the `type` field in this object and {project_id} is a // project ID that provides API-specific context for accessing the type. APIs // that do not use project information can use the resource name format // "monitoredResourceDescriptors/{type}". Name string `json:"name,omitempty"` // Type: Required. The monitored resource type. For example, the type // "cloudsql_database" represents databases in Google Cloud SQL. For a list // of types, see Monitored resource types // (https://cloud.google.com/monitoring/api/resources) and Logging resource // types (https://cloud.google.com/logging/docs/api/v2/resource-list). Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MonitoredResourceDescriptor) MarshalJSON() ([]byte, error) { type NoMethod MonitoredResourceDescriptor return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Monitoring: Monitoring configuration of the service. The example below shows // how to configure monitored resources and metrics for monitoring. In the // example, a monitored resource and two metrics are defined. The // `library.googleapis.com/book/returned_count` metric is sent to both producer // and consumer projects, whereas the `library.googleapis.com/book/num_overdue` // metric is only sent to the consumer project. monitored_resources: - type: // library.googleapis.com/Branch display_name: "Library Branch" description: "A // branch of a library." launch_stage: GA labels: - key: resource_container // description: "The Cloud container (ie. project id) for the Branch." - key: // location description: "The location of the library branch." - key: branch_id // description: "The id of the branch." metrics: - name: // library.googleapis.com/book/returned_count display_name: "Books Returned" // description: "The count of books that have been returned." launch_stage: GA // metric_kind: DELTA value_type: INT64 unit: "1" labels: - key: customer_id // description: "The id of the customer." - name: // library.googleapis.com/book/num_overdue display_name: "Books Overdue" // description: "The current number of overdue books." launch_stage: GA // metric_kind: GAUGE value_type: INT64 unit: "1" labels: - key: customer_id // description: "The id of the customer." monitoring: producer_destinations: - // monitored_resource: library.googleapis.com/Branch metrics: - // library.googleapis.com/book/returned_count consumer_destinations: - // monitored_resource: library.googleapis.com/Branch metrics: - // library.googleapis.com/book/returned_count - // library.googleapis.com/book/num_overdue type Monitoring struct { // ConsumerDestinations: Monitoring configurations for sending metrics to the // consumer project. There can be multiple consumer destinations. A monitored // resource type may appear in multiple monitoring destinations if different // aggregations are needed for different sets of metrics associated with that // monitored resource type. A monitored resource and metric pair may only be // used once in the Monitoring configuration. ConsumerDestinations []*MonitoringDestination `json:"consumerDestinations,omitempty"` // ProducerDestinations: Monitoring configurations for sending metrics to the // producer project. There can be multiple producer destinations. A monitored // resource type may appear in multiple monitoring destinations if different // aggregations are needed for different sets of metrics associated with that // monitored resource type. A monitored resource and metric pair may only be // used once in the Monitoring configuration. ProducerDestinations []*MonitoringDestination `json:"producerDestinations,omitempty"` // ForceSendFields is a list of field names (e.g. "ConsumerDestinations") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ConsumerDestinations") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Monitoring) MarshalJSON() ([]byte, error) { type NoMethod Monitoring return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // MonitoringDestination: Configuration of a specific monitoring destination // (the producer project or the consumer project). type MonitoringDestination struct { // Metrics: Types of the metrics to report to this monitoring destination. Each // type must be defined in Service.metrics section. Metrics []string `json:"metrics,omitempty"` // MonitoredResource: The monitored resource type. The type must be defined in // Service.monitored_resources section. MonitoredResource string `json:"monitoredResource,omitempty"` // ForceSendFields is a list of field names (e.g. "Metrics") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Metrics") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *MonitoringDestination) MarshalJSON() ([]byte, error) { type NoMethod MonitoringDestination return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // NodeSettings: Settings for Node client libraries. type NodeSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *NodeSettings) MarshalJSON() ([]byte, error) { type NoMethod NodeSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // OAuthRequirements: OAuth scopes are a way to define data and permissions on // data. For example, there are scopes defined for "Read-only access to Google // Calendar" and "Access to Cloud Platform". Users can consent to a scope for // an application, giving it permission to access that data on their behalf. // OAuth scope specifications should be fairly coarse grained; a user will need // to see and understand the text description of what your scope means. In most // cases: use one or at most two OAuth scopes for an entire family of products. // If your product has multiple APIs, you should probably be sharing the OAuth // scope across all of those APIs. When you need finer grained OAuth consent // screens: talk with your product management about how developers will use // them in practice. Please note that even though each of the canonical scopes // is enough for a request to be accepted and passed to the backend, a request // can still fail due to the backend requiring additional scopes or // permissions. type OAuthRequirements struct { // CanonicalScopes: The list of publicly documented OAuth scopes that are // allowed access. An OAuth token containing any of these scopes will be // accepted. Example: canonical_scopes: // https://www.googleapis.com/auth/calendar, // https://www.googleapis.com/auth/calendar.read CanonicalScopes string `json:"canonicalScopes,omitempty"` // ForceSendFields is a list of field names (e.g. "CanonicalScopes") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CanonicalScopes") to include in // API requests with the JSON null value. By default, fields with empty values // are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *OAuthRequirements) MarshalJSON() ([]byte, error) { type NoMethod OAuthRequirements return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Operation: This resource represents a long-running operation that is the // result of a network API call. type Operation struct { // Done: If the value is `false`, it means the operation is still in progress. // If `true`, the operation is completed, and either `error` or `response` is // available. Done bool `json:"done,omitempty"` // Error: The error result of the operation in case of failure or cancellation. Error *Status `json:"error,omitempty"` // Metadata: Service-specific metadata associated with the operation. It // typically contains progress information and common metadata such as create // time. Some services might not provide such metadata. Any method that returns // a long-running operation should document the metadata type, if any. Metadata googleapi.RawMessage `json:"metadata,omitempty"` // Name: The server-assigned name, which is only unique within the same service // that originally returns it. If you use the default HTTP mapping, the `name` // should be a resource name ending with `operations/{unique_id}`. Name string `json:"name,omitempty"` // Response: The normal, successful response of the operation. If the original // method returns no data on success, such as `Delete`, the response is // `google.protobuf.Empty`. If the original method is standard // `Get`/`Create`/`Update`, the response should be the resource. For other // methods, the response should have the type `XxxResponse`, where `Xxx` is the // original method name. For example, if the original method name is // `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. Response googleapi.RawMessage `json:"response,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Done") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Done") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Operation) MarshalJSON() ([]byte, error) { type NoMethod Operation return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // OperationInfo: A message representing the message types used by a // long-running operation. Example: rpc Export(ExportRequest) returns // (google.longrunning.Operation) { option (google.longrunning.operation_info) // = { response_type: "ExportResponse" metadata_type: "ExportMetadata" }; } type OperationInfo struct { // MetadataType: Required. The message name of the metadata type for this // long-running operation. If the response is in a different package from the // rpc, a fully-qualified message name must be used (e.g. // `google.protobuf.Struct`). Note: Altering this value constitutes a breaking // change. MetadataType string `json:"metadataType,omitempty"` // ResponseType: Required. The message name of the primary return type for this // long-running operation. This type will be used to deserialize the LRO's // response. If the response is in a different package from the rpc, a // fully-qualified message name must be used (e.g. `google.protobuf.Struct`). // Note: Altering this value constitutes a breaking change. ResponseType string `json:"responseType,omitempty"` // ForceSendFields is a list of field names (e.g. "MetadataType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MetadataType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *OperationInfo) MarshalJSON() ([]byte, error) { type NoMethod OperationInfo return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // OperationMetadata: The metadata associated with a long running operation // resource. type OperationMetadata struct { // ProgressPercentage: Percentage of completion of this operation, ranging from // 0 to 100. ProgressPercentage int64 `json:"progressPercentage,omitempty"` // ResourceNames: The full name of the resources that this operation is // directly associated with. ResourceNames []string `json:"resourceNames,omitempty"` // StartTime: The start time of the operation. StartTime string `json:"startTime,omitempty"` // Steps: Detailed status information for each step. The order is undetermined. Steps []*Step `json:"steps,omitempty"` // ForceSendFields is a list of field names (e.g. "ProgressPercentage") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ProgressPercentage") to include // in API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *OperationMetadata) MarshalJSON() ([]byte, error) { type NoMethod OperationMetadata return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Option: A protocol buffer option, which can be attached to a message, field, // enumeration, etc. type Option struct { // Name: The option's name. For protobuf built-in options (options defined in // descriptor.proto), this is the short name. For example, "map_entry". For // custom options, it should be the fully-qualified name. For example, // "google.api.http". Name string `json:"name,omitempty"` // Value: The option's value packed in an Any message. If the value is a // primitive, the corresponding wrapper type defined in // google/protobuf/wrappers.proto should be used. If the value is an enum, it // should be stored as an int32 value using the google.protobuf.Int32Value // type. Value googleapi.RawMessage `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Option) MarshalJSON() ([]byte, error) { type NoMethod Option return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Page: Represents a documentation page. A page can contain subpages to // represent nested documentation set structure. type Page struct { // Content: The Markdown content of the page. You can use (== include {path} // ==) to include content from a Markdown file. The content can be used to // produce the documentation page such as HTML format page. Content string `json:"content,omitempty"` // Name: The name of the page. It will be used as an identity of the page to // generate URI of the page, text of the link to this page in navigation, etc. // The full page name (start from the root page name to this page concatenated // with `.`) can be used as reference to the page in your documentation. For // example: pages: - name: Tutorial content: (== include tutorial.md ==) // subpages: - name: Java content: (== include tutorial_java.md ==) You can // reference `Java` page using Markdown reference link syntax: `Java`. Name string `json:"name,omitempty"` // Subpages: Subpages of this page. The order of subpages specified here will // be honored in the generated docset. Subpages []*Page `json:"subpages,omitempty"` // ForceSendFields is a list of field names (e.g. "Content") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Content") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Page) MarshalJSON() ([]byte, error) { type NoMethod Page return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // PhpSettings: Settings for Php client libraries. type PhpSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *PhpSettings) MarshalJSON() ([]byte, error) { type NoMethod PhpSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Policy: An Identity and Access Management (IAM) policy, which specifies // access controls for Google Cloud resources. A `Policy` is a collection of // `bindings`. A `binding` binds one or more `members`, or principals, to a // single `role`. Principals can be user accounts, service accounts, Google // groups, and domains (such as G Suite). A `role` is a named list of // permissions; each `role` can be an IAM predefined role or a user-created // custom role. For some types of Google Cloud resources, a `binding` can also // specify a `condition`, which is a logical expression that allows access to a // resource only if the expression evaluates to `true`. A condition can add // constraints based on attributes of the request, the resource, or both. To // learn which resources support conditions in their IAM policies, see the IAM // documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). **JSON // example:** ``` { "bindings": [ { "role": // "roles/resourcemanager.organizationAdmin", "members": [ // "user:mike@example.com", "group:admins@example.com", "domain:google.com", // "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": // "roles/resourcemanager.organizationViewer", "members": [ // "user:eve@example.com" ], "condition": { "title": "expirable access", // "description": "Does not grant access after Sep 2020", "expression": // "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": // "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - // members: - user:mike@example.com - group:admins@example.com - // domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com // role: roles/resourcemanager.organizationAdmin - members: - // user:eve@example.com role: roles/resourcemanager.organizationViewer // condition: title: expirable access description: Does not grant access after // Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') // etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, // see the IAM documentation (https://cloud.google.com/iam/docs/). type Policy struct { // AuditConfigs: Specifies cloud audit logging configuration for this policy. AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"` // Bindings: Associates a list of `members`, or principals, with a `role`. // Optionally, may specify a `condition` that determines how and when the // `bindings` are applied. Each of the `bindings` must contain at least one // principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; // up to 250 of these principals can be Google groups. Each occurrence of a // principal counts towards these limits. For example, if the `bindings` grant // 50 different roles to `user:alice@example.com`, and not to any other // principal, then you can add another 1,450 principals to the `bindings` in // the `Policy`. Bindings []*Binding `json:"bindings,omitempty"` // Etag: `etag` is used for optimistic concurrency control as a way to help // prevent simultaneous updates of a policy from overwriting each other. It is // strongly suggested that systems make use of the `etag` in the // read-modify-write cycle to perform policy updates in order to avoid race // conditions: An `etag` is returned in the response to `getIamPolicy`, and // systems are expected to put that etag in the request to `setIamPolicy` to // ensure that their change will be applied to the same version of the policy. // **Important:** If you use IAM Conditions, you must include the `etag` field // whenever you call `setIamPolicy`. If you omit this field, then IAM allows // you to overwrite a version `3` policy with a version `1` policy, and all of // the conditions in the version `3` policy are lost. Etag string `json:"etag,omitempty"` // Version: Specifies the format of the policy. Valid values are `0`, `1`, and // `3`. Requests that specify an invalid value are rejected. Any operation that // affects conditional role bindings must specify version `3`. This requirement // applies to the following operations: * Getting a policy that includes a // conditional role binding * Adding a conditional role binding to a policy * // Changing a conditional role binding in a policy * Removing any role binding, // with or without a condition, from a policy that includes conditions // **Important:** If you use IAM Conditions, you must include the `etag` field // whenever you call `setIamPolicy`. If you omit this field, then IAM allows // you to overwrite a version `3` policy with a version `1` policy, and all of // the conditions in the version `3` policy are lost. If a policy does not // include any conditions, operations on that policy may specify any valid // version or leave the field unset. To learn which resources support // conditions in their IAM policies, see the IAM documentation // (https://cloud.google.com/iam/help/conditions/resource-policies). Version int64 `json:"version,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "AuditConfigs") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AuditConfigs") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Policy) MarshalJSON() ([]byte, error) { type NoMethod Policy return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Publishing: This message configures the settings for publishing Google Cloud // Client libraries (https://cloud.google.com/apis/docs/cloud-client-libraries) // generated from the service config. type Publishing struct { // ApiShortName: Used as a tracking tag when collecting data about the APIs // developer relations artifacts like docs, packages delivered to package // managers, etc. Example: "speech". ApiShortName string `json:"apiShortName,omitempty"` // CodeownerGithubTeams: GitHub teams to be added to CODEOWNERS in the // directory in GitHub containing source code for the client libraries for this // API. CodeownerGithubTeams []string `json:"codeownerGithubTeams,omitempty"` // DocTagPrefix: A prefix used in sample code when demarking regions to be // included in documentation. DocTagPrefix string `json:"docTagPrefix,omitempty"` // DocumentationUri: Link to product home page. Example: // https://cloud.google.com/asset-inventory/docs/overview DocumentationUri string `json:"documentationUri,omitempty"` // GithubLabel: GitHub label to apply to issues and pull requests opened for // this API. GithubLabel string `json:"githubLabel,omitempty"` // LibrarySettings: Client library settings. If the same version string appears // multiple times in this list, then the last one wins. Settings from earlier // settings with the same version string are discarded. LibrarySettings []*ClientLibrarySettings `json:"librarySettings,omitempty"` // MethodSettings: A list of API method settings, e.g. the behavior for methods // that use the long-running operation pattern. MethodSettings []*MethodSettings `json:"methodSettings,omitempty"` // NewIssueUri: Link to a *public* URI where users can report issues. Example: // https://issuetracker.google.com/issues/new?component=190865&template=1161103 NewIssueUri string `json:"newIssueUri,omitempty"` // Organization: For whom the client library is being published. // // Possible values: // "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED" - Not useful. // "CLOUD" - Google Cloud Platform Org. // "ADS" - Ads (Advertising) Org. // "PHOTOS" - Photos Org. // "STREET_VIEW" - Street View Org. // "SHOPPING" - Shopping Org. // "GEO" - Geo Org. // "GENERATIVE_AI" - Generative AI - https://developers.generativeai.google Organization string `json:"organization,omitempty"` // ProtoReferenceDocumentationUri: Optional link to proto reference // documentation. Example: // https://cloud.google.com/pubsub/lite/docs/reference/rpc ProtoReferenceDocumentationUri string `json:"protoReferenceDocumentationUri,omitempty"` // RestReferenceDocumentationUri: Optional link to REST reference // documentation. Example: // https://cloud.google.com/pubsub/lite/docs/reference/rest RestReferenceDocumentationUri string `json:"restReferenceDocumentationUri,omitempty"` // ForceSendFields is a list of field names (e.g. "ApiShortName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ApiShortName") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Publishing) MarshalJSON() ([]byte, error) { type NoMethod Publishing return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // PythonSettings: Settings for Python client libraries. type PythonSettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *PythonSettings) MarshalJSON() ([]byte, error) { type NoMethod PythonSettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Quota: Quota configuration helps to achieve fairness and budgeting in // service usage. The metric based quota configuration works this way: - The // service configuration defines a set of metrics. - For API calls, the // quota.metric_rules maps methods to metrics with corresponding costs. - The // quota.limits defines limits on the metrics, which will be used for quota // checks at runtime. An example quota configuration in yaml format: quota: // limits: - name: apiWriteQpsPerProject metric: // library.googleapis.com/write_calls unit: "1/min/{project}" # rate limit for // consumer projects values: STANDARD: 10000 (The metric rules bind all methods // to the read_calls metric, except for the UpdateBook and DeleteBook methods. // These two methods are mapped to the write_calls metric, with the UpdateBook // method consuming at twice rate as the DeleteBook method.) metric_rules: - // selector: "*" metric_costs: library.googleapis.com/read_calls: 1 - selector: // google.example.library.v1.LibraryService.UpdateBook metric_costs: // library.googleapis.com/write_calls: 2 - selector: // google.example.library.v1.LibraryService.DeleteBook metric_costs: // library.googleapis.com/write_calls: 1 Corresponding Metric definition: // metrics: - name: library.googleapis.com/read_calls display_name: Read // requests metric_kind: DELTA value_type: INT64 - name: // library.googleapis.com/write_calls display_name: Write requests metric_kind: // DELTA value_type: INT64 type Quota struct { // Limits: List of QuotaLimit definitions for the service. Limits []*QuotaLimit `json:"limits,omitempty"` // MetricRules: List of MetricRule definitions, each one mapping a selected // method to one or more metrics. MetricRules []*MetricRule `json:"metricRules,omitempty"` // ForceSendFields is a list of field names (e.g. "Limits") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Limits") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Quota) MarshalJSON() ([]byte, error) { type NoMethod Quota return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // QuotaLimit: `QuotaLimit` defines a specific limit that applies over a // specified duration for a limit type. There can be at most one limit for a // duration and limit type combination defined within a `QuotaGroup`. type QuotaLimit struct { // DefaultLimit: Default number of tokens that can be consumed during the // specified duration. This is the number of tokens assigned when a client // application developer activates the service for his/her project. Specifying // a value of 0 will block all requests. This can be used if you are // provisioning quota to selected consumers and blocking others. Similarly, a // value of -1 will indicate an unlimited quota. No other negative values are // allowed. Used by group-based quotas only. DefaultLimit int64 `json:"defaultLimit,omitempty,string"` // Description: Optional. User-visible, extended description for this quota // limit. Should be used only when more context is needed to understand this // limit than provided by the limit's display name (see: `display_name`). Description string `json:"description,omitempty"` // DisplayName: User-visible display name for this limit. Optional. If not set, // the UI will provide a default display name based on the quota configuration. // This field can be used to override the default display name generated from // the configuration. DisplayName string `json:"displayName,omitempty"` // Duration: Duration of this limit in textual notation. Must be "100s" or // "1d". Used by group-based quotas only. Duration string `json:"duration,omitempty"` // FreeTier: Free tier value displayed in the Developers Console for this // limit. The free tier is the number of tokens that will be subtracted from // the billed amount when billing is enabled. This field can only be set on a // limit with duration "1d", in a billable group; it is invalid on any other // limit. If this field is not set, it defaults to 0, indicating that there is // no free tier for this service. Used by group-based quotas only. FreeTier int64 `json:"freeTier,omitempty,string"` // MaxLimit: Maximum number of tokens that can be consumed during the specified // duration. Client application developers can override the default limit up to // this maximum. If specified, this value cannot be set to a value less than // the default limit. If not specified, it is set to the default limit. To // allow clients to apply overrides with no upper bound, set this to -1, // indicating unlimited maximum quota. Used by group-based quotas only. MaxLimit int64 `json:"maxLimit,omitempty,string"` // Metric: The name of the metric this quota limit applies to. The quota limits // with the same metric will be checked together during runtime. The metric // must be defined within the service config. Metric string `json:"metric,omitempty"` // Name: Name of the quota limit. The name must be provided, and it must be // unique within the service. The name can only include alphanumeric characters // as well as '-'. The maximum length of the limit name is 64 characters. Name string `json:"name,omitempty"` // Unit: Specify the unit of the quota limit. It uses the same syntax as // Metric.unit. The supported unit kinds are determined by the quota backend // system. Here are some examples: * "1/min/{project}" for quota per minute per // project. Note: the order of unit components is insignificant. The "1" at the // beginning is required to follow the metric unit syntax. Unit string `json:"unit,omitempty"` // Values: Tiered limit values. You must specify this as a key:value pair, with // an integer value that is the maximum number of requests allowed for the // specified unit. Currently only STANDARD is supported. Values map[string]string `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "DefaultLimit") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DefaultLimit") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *QuotaLimit) MarshalJSON() ([]byte, error) { type NoMethod QuotaLimit return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // ResourceReference: Defines a proto annotation that describes a string field // that refers to an API resource. type ResourceReference struct { // ChildType: The resource type of a child collection that the annotated field // references. This is useful for annotating the `parent` field that doesn't // have a fixed resource type. Example: message ListLogEntriesRequest { string // parent = 1 [(google.api.resource_reference) = { child_type: // "logging.googleapis.com/LogEntry" }; } ChildType string `json:"childType,omitempty"` // Type: The resource type that the annotated field references. Example: // message Subscription { string topic = 2 [(google.api.resource_reference) = { // type: "pubsub.googleapis.com/Topic" }]; } Occasionally, a field may // reference an arbitrary resource. In this case, APIs use the special value * // in their resource reference. Example: message GetIamPolicyRequest { string // resource = 2 [(google.api.resource_reference) = { type: "*" }]; } Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "ChildType") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ChildType") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *ResourceReference) MarshalJSON() ([]byte, error) { type NoMethod ResourceReference return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Rollout: A rollout resource that defines how service configuration versions // are pushed to control plane systems. Typically, you create a new version of // the service config, and then create a Rollout to push the service config. type Rollout struct { // CreateTime: Creation time of the rollout. Readonly. CreateTime string `json:"createTime,omitempty"` // CreatedBy: The user who created the Rollout. Readonly. CreatedBy string `json:"createdBy,omitempty"` // DeleteServiceStrategy: The strategy associated with a rollout to delete a // `ManagedService`. Readonly. DeleteServiceStrategy *DeleteServiceStrategy `json:"deleteServiceStrategy,omitempty"` // RolloutId: Optional. Unique identifier of this Rollout. Must be no longer // than 63 characters and only lower case letters, digits, '.', '_' and '-' are // allowed. If not specified by client, the server will generate one. The // generated id will have the form of , where "date" is the create date in ISO // 8601 format. "revision number" is a monotonically increasing positive number // that is reset every day for each service. An example of the generated // rollout_id is '2016-02-16r1' RolloutId string `json:"rolloutId,omitempty"` // ServiceName: The name of the service associated with this Rollout. ServiceName string `json:"serviceName,omitempty"` // Status: The status of this rollout. Readonly. In case of a failed rollout, // the system will automatically rollback to the current Rollout version. // Readonly. // // Possible values: // "ROLLOUT_STATUS_UNSPECIFIED" - No status specified. // "IN_PROGRESS" - The Rollout is in progress. // "SUCCESS" - The Rollout has completed successfully. // "CANCELLED" - The Rollout has been cancelled. This can happen if you have // overlapping Rollout pushes, and the previous ones will be cancelled. // "FAILED" - The Rollout has failed and the rollback attempt has failed too. // "PENDING" - The Rollout has not started yet and is pending for execution. // "FAILED_ROLLED_BACK" - The Rollout has failed and rolled back to the // previous successful Rollout. Status string `json:"status,omitempty"` // TrafficPercentStrategy: Google Service Control selects service // configurations based on traffic percentage. TrafficPercentStrategy *TrafficPercentStrategy `json:"trafficPercentStrategy,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CreateTime") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CreateTime") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Rollout) MarshalJSON() ([]byte, error) { type NoMethod Rollout return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // RubySettings: Settings for Ruby client libraries. type RubySettings struct { // Common: Some settings. Common *CommonLanguageSettings `json:"common,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *RubySettings) MarshalJSON() ([]byte, error) { type NoMethod RubySettings return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Service: `Service` is the root object of Google API service configuration // (service config). It describes the basic information about a logical // service, such as the service name and the user-facing title, and delegates // other aspects to sub-sections. Each sub-section is either a proto message or // a repeated proto message that configures a specific aspect, such as auth. // For more information, see each proto message definition. Example: type: // google.api.Service name: calendar.googleapis.com title: Google Calendar API // apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: // "google.calendar.v3.*" restriction: PREVIEW backend: rules: - selector: // "google.calendar.v3.*" address: calendar.example.com authentication: // providers: - id: google_calendar_auth jwks_uri: // https://www.googleapis.com/oauth2/v1/certs issuer: // https://securetoken.google.com rules: - selector: "*" requirements: // provider_id: google_calendar_auth type Service struct { // Apis: A list of API interfaces exported by this service. Only the `name` // field of the google.protobuf.Api needs to be provided by the configuration // author, as the remaining fields will be derived from the IDL during the // normalization process. It is an error to specify an API interface here which // cannot be resolved against the associated IDL files. Apis []*Api `json:"apis,omitempty"` // Authentication: Auth configuration. Authentication *Authentication `json:"authentication,omitempty"` // Backend: API backend configuration. Backend *Backend `json:"backend,omitempty"` // Billing: Billing configuration. Billing *Billing `json:"billing,omitempty"` // ConfigVersion: Obsolete. Do not use. This field has no semantic meaning. The // service config compiler always sets this field to `3`. ConfigVersion int64 `json:"configVersion,omitempty"` // Context: Context configuration. Context *Context `json:"context,omitempty"` // Control: Configuration for the service control plane. Control *Control `json:"control,omitempty"` // CustomError: Custom error configuration. CustomError *CustomError `json:"customError,omitempty"` // Documentation: Additional API documentation. Documentation *Documentation `json:"documentation,omitempty"` // Endpoints: Configuration for network endpoints. If this is empty, then an // endpoint with the same name as the service is automatically generated to // service all defined APIs. Endpoints []*Endpoint `json:"endpoints,omitempty"` // Enums: A list of all enum types included in this API service. Enums // referenced directly or indirectly by the `apis` are automatically included. // Enums which are not referenced but shall be included should be listed here // by name by the configuration author. Example: enums: - name: // google.someapi.v1.SomeEnum Enums []*Enum `json:"enums,omitempty"` // Http: HTTP configuration. Http *Http `json:"http,omitempty"` // Id: A unique ID for a specific instance of this message, typically assigned // by the client for tracking purpose. Must be no longer than 63 characters and // only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the // server may choose to generate one instead. Id string `json:"id,omitempty"` // Logging: Logging configuration. Logging *Logging `json:"logging,omitempty"` // Logs: Defines the logs used by this service. Logs []*LogDescriptor `json:"logs,omitempty"` // Metrics: Defines the metrics used by this service. Metrics []*MetricDescriptor `json:"metrics,omitempty"` // MonitoredResources: Defines the monitored resources used by this service. // This is required by the Service.monitoring and Service.logging // configurations. MonitoredResources []*MonitoredResourceDescriptor `json:"monitoredResources,omitempty"` // Monitoring: Monitoring configuration. Monitoring *Monitoring `json:"monitoring,omitempty"` // Name: The service name, which is a DNS-like logical identifier for the // service, such as `calendar.googleapis.com`. The service name typically goes // through DNS verification to make sure the owner of the service also owns the // DNS name. Name string `json:"name,omitempty"` // ProducerProjectId: The Google project that owns this service. ProducerProjectId string `json:"producerProjectId,omitempty"` // Publishing: Settings for Google Cloud Client libraries // (https://cloud.google.com/apis/docs/cloud-client-libraries) generated from // APIs defined as protocol buffers. Publishing *Publishing `json:"publishing,omitempty"` // Quota: Quota configuration. Quota *Quota `json:"quota,omitempty"` // SourceInfo: Output only. The source information for this configuration if // available. SourceInfo *SourceInfo `json:"sourceInfo,omitempty"` // SystemParameters: System parameter configuration. SystemParameters *SystemParameters `json:"systemParameters,omitempty"` // SystemTypes: A list of all proto message types included in this API service. // It serves similar purpose as [google.api.Service.types], except that these // types are not needed by user-defined APIs. Therefore, they will not show up // in the generated discovery doc. This field should only be used to define // system APIs in ESF. SystemTypes []*Type `json:"systemTypes,omitempty"` // Title: The product title for this service, it is the name displayed in // Google Cloud Console. Title string `json:"title,omitempty"` // Types: A list of all proto message types included in this API service. Types // referenced directly or indirectly by the `apis` are automatically included. // Messages which are not referenced but shall be included, such as types used // by the `google.protobuf.Any` type, should be listed here by name by the // configuration author. Example: types: - name: google.protobuf.Int32 Types []*Type `json:"types,omitempty"` // Usage: Configuration controlling usage of this service. Usage *Usage `json:"usage,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Apis") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Apis") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Service) MarshalJSON() ([]byte, error) { type NoMethod Service return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SetIamPolicyRequest: Request message for `SetIamPolicy` method. type SetIamPolicyRequest struct { // Policy: REQUIRED: The complete policy to be applied to the `resource`. The // size of the policy is limited to a few 10s of KB. An empty policy is a valid // policy but certain Google Cloud services (such as Projects) might reject // them. Policy *Policy `json:"policy,omitempty"` // UpdateMask: OPTIONAL: A FieldMask specifying which fields of the policy to // modify. Only the fields in the mask will be modified. If no mask is // provided, the following default mask is used: `paths: "bindings, etag" UpdateMask string `json:"updateMask,omitempty"` // ForceSendFields is a list of field names (e.g. "Policy") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Policy") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SetIamPolicyRequest) MarshalJSON() ([]byte, error) { type NoMethod SetIamPolicyRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SourceContext: `SourceContext` represents information about the source of a // protobuf element, like the file in which it is defined. type SourceContext struct { // FileName: The path-qualified name of the .proto file that contained the // associated protobuf element. For example: // "google/protobuf/source_context.proto". FileName string `json:"fileName,omitempty"` // ForceSendFields is a list of field names (e.g. "FileName") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FileName") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SourceContext) MarshalJSON() ([]byte, error) { type NoMethod SourceContext return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SourceInfo: Source information used to create a Service Config type SourceInfo struct { // SourceFiles: All files used during config generation. SourceFiles []googleapi.RawMessage `json:"sourceFiles,omitempty"` // ForceSendFields is a list of field names (e.g. "SourceFiles") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "SourceFiles") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SourceInfo) MarshalJSON() ([]byte, error) { type NoMethod SourceInfo return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Status: The `Status` type defines a logical error model that is suitable for // different programming environments, including REST APIs and RPC APIs. It is // used by gRPC (https://github.com/grpc). Each `Status` message contains three // pieces of data: error code, error message, and error details. You can find // out more about this error model and how to work with it in the API Design // Guide (https://cloud.google.com/apis/design/errors). type Status struct { // Code: The status code, which should be an enum value of google.rpc.Code. Code int64 `json:"code,omitempty"` // Details: A list of messages that carry the error details. There is a common // set of message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` // Message: A developer-facing error message, which should be in English. Any // user-facing error message should be localized and sent in the // google.rpc.Status.details field, or localized by the client. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API requests // with the JSON null value. By default, fields with empty values are omitted // from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Status) MarshalJSON() ([]byte, error) { type NoMethod Status return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Step: Represents the status of one operation step. type Step struct { // Description: The short description of the step. Description string `json:"description,omitempty"` // Status: The status code. // // Possible values: // "STATUS_UNSPECIFIED" - Unspecifed code. // "DONE" - The operation or step has completed without errors. // "NOT_STARTED" - The operation or step has not started yet. // "IN_PROGRESS" - The operation or step is in progress. // "FAILED" - The operation or step has completed with errors. If the // operation is rollbackable, the rollback completed with errors too. // "CANCELLED" - The operation or step has completed with cancellation. Status string `json:"status,omitempty"` // ForceSendFields is a list of field names (e.g. "Description") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Description") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Step) MarshalJSON() ([]byte, error) { type NoMethod Step return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SubmitConfigSourceRequest: Request message for SubmitConfigSource method. type SubmitConfigSourceRequest struct { // ConfigSource: Required. The source configuration for the service. ConfigSource *ConfigSource `json:"configSource,omitempty"` // ValidateOnly: Optional. If set, this will result in the generation of a // `google.api.Service` configuration based on the `ConfigSource` provided, but // the generated config and the sources will NOT be persisted. ValidateOnly bool `json:"validateOnly,omitempty"` // ForceSendFields is a list of field names (e.g. "ConfigSource") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ConfigSource") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SubmitConfigSourceRequest) MarshalJSON() ([]byte, error) { type NoMethod SubmitConfigSourceRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SubmitConfigSourceResponse: Response message for SubmitConfigSource method. type SubmitConfigSourceResponse struct { // ServiceConfig: The generated service configuration. ServiceConfig *Service `json:"serviceConfig,omitempty"` // ForceSendFields is a list of field names (e.g. "ServiceConfig") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ServiceConfig") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SubmitConfigSourceResponse) MarshalJSON() ([]byte, error) { type NoMethod SubmitConfigSourceResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SystemParameter: Define a parameter's name and location. The parameter may // be passed as either an HTTP header or a URL query parameter, and if both are // passed the behavior is implementation-dependent. type SystemParameter struct { // HttpHeader: Define the HTTP header name to use for the parameter. It is case // insensitive. HttpHeader string `json:"httpHeader,omitempty"` // Name: Define the name of the parameter, such as "api_key" . It is case // sensitive. Name string `json:"name,omitempty"` // UrlQueryParameter: Define the URL query parameter name to use for the // parameter. It is case sensitive. UrlQueryParameter string `json:"urlQueryParameter,omitempty"` // ForceSendFields is a list of field names (e.g. "HttpHeader") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "HttpHeader") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SystemParameter) MarshalJSON() ([]byte, error) { type NoMethod SystemParameter return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SystemParameterRule: Define a system parameter rule mapping system parameter // definitions to methods. type SystemParameterRule struct { // Parameters: Define parameters. Multiple names may be defined for a // parameter. For a given method call, only one of them should be used. If // multiple names are used the behavior is implementation-dependent. If none of // the specified names are present the behavior is parameter-dependent. Parameters []*SystemParameter `json:"parameters,omitempty"` // Selector: Selects the methods to which this rule applies. Use '*' to // indicate all methods in all APIs. Refer to selector for syntax details. Selector string `json:"selector,omitempty"` // ForceSendFields is a list of field names (e.g. "Parameters") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Parameters") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SystemParameterRule) MarshalJSON() ([]byte, error) { type NoMethod SystemParameterRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // SystemParameters: ### System parameter configuration A system parameter is a // special kind of parameter defined by the API system, not by an individual // API. It is typically mapped to an HTTP header and/or a URL query parameter. // This configuration specifies which methods change the names of the system // parameters. type SystemParameters struct { // Rules: Define system parameters. The parameters defined here will override // the default parameters implemented by the system. If this field is missing // from the service config, default system parameters will be used. Default // system parameters and names is implementation-dependent. Example: define api // key for all methods system_parameters rules: - selector: "*" parameters: - // name: api_key url_query_parameter: api_key Example: define 2 api key names // for a specific method. system_parameters rules: - selector: "/ListShelves" // parameters: - name: api_key http_header: Api-Key1 - name: api_key // http_header: Api-Key2 **NOTE:** All service configuration rules follow "last // one wins" order. Rules []*SystemParameterRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. "Rules") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Rules") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *SystemParameters) MarshalJSON() ([]byte, error) { type NoMethod SystemParameters return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // TestIamPermissionsRequest: Request message for `TestIamPermissions` method. type TestIamPermissionsRequest struct { // Permissions: The set of permissions to check for the `resource`. Permissions // with wildcards (such as `*` or `storage.*`) are not allowed. For more // information see IAM Overview // (https://cloud.google.com/iam/docs/overview#permissions). Permissions []string `json:"permissions,omitempty"` // ForceSendFields is a list of field names (e.g. "Permissions") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Permissions") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *TestIamPermissionsRequest) MarshalJSON() ([]byte, error) { type NoMethod TestIamPermissionsRequest return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // TestIamPermissionsResponse: Response message for `TestIamPermissions` // method. type TestIamPermissionsResponse struct { // Permissions: A subset of `TestPermissionsRequest.permissions` that the // caller is allowed. Permissions []string `json:"permissions,omitempty"` // ServerResponse contains the HTTP response code and headers from the server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Permissions") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Permissions") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *TestIamPermissionsResponse) MarshalJSON() ([]byte, error) { type NoMethod TestIamPermissionsResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // TrafficPercentStrategy: Strategy that specifies how clients of Google // Service Controller want to send traffic to use different config versions. // This is generally used by API proxy to split traffic based on your // configured percentage for each config version. One example of how to // gradually rollout a new service configuration using this strategy: Day 1 // Rollout { id: "example.googleapis.com/rollout_20160206" // traffic_percent_strategy { percentages: { "example.googleapis.com/20160201": // 70.00 "example.googleapis.com/20160206": 30.00 } } } Day 2 Rollout { id: // "example.googleapis.com/rollout_20160207" traffic_percent_strategy: { // percentages: { "example.googleapis.com/20160206": 100.00 } } } type TrafficPercentStrategy struct { // Percentages: Maps service configuration IDs to their corresponding traffic // percentage. Key is the service configuration ID, Value is the traffic // percentage which must be greater than 0.0 and the sum must equal to 100.0. Percentages map[string]float64 `json:"percentages,omitempty"` // ForceSendFields is a list of field names (e.g. "Percentages") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Percentages") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *TrafficPercentStrategy) MarshalJSON() ([]byte, error) { type NoMethod TrafficPercentStrategy return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Type: A protocol buffer message type. type Type struct { // Edition: The source edition string, only valid when syntax is // SYNTAX_EDITIONS. Edition string `json:"edition,omitempty"` // Fields: The list of fields. Fields []*Field `json:"fields,omitempty"` // Name: The fully qualified message name. Name string `json:"name,omitempty"` // Oneofs: The list of types appearing in `oneof` definitions in this type. Oneofs []string `json:"oneofs,omitempty"` // Options: The protocol buffer options. Options []*Option `json:"options,omitempty"` // SourceContext: The source context. SourceContext *SourceContext `json:"sourceContext,omitempty"` // Syntax: The source syntax. // // Possible values: // "SYNTAX_PROTO2" - Syntax `proto2`. // "SYNTAX_PROTO3" - Syntax `proto3`. // "SYNTAX_EDITIONS" - Syntax `editions`. Syntax string `json:"syntax,omitempty"` // ForceSendFields is a list of field names (e.g. "Edition") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Edition") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Type) MarshalJSON() ([]byte, error) { type NoMethod Type return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // UndeleteServiceResponse: Response message for UndeleteService method. type UndeleteServiceResponse struct { // Service: Revived service resource. Service *ManagedService `json:"service,omitempty"` // ForceSendFields is a list of field names (e.g. "Service") to unconditionally // include in API requests. By default, fields with empty or default values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Service") to include in API // requests with the JSON null value. By default, fields with empty values are // omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UndeleteServiceResponse) MarshalJSON() ([]byte, error) { type NoMethod UndeleteServiceResponse return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // Usage: Configuration controlling usage of a service. type Usage struct { // ProducerNotificationChannel: The full resource name of a channel used for // sending notifications to the service producer. Google Service Management // currently only supports Google Cloud Pub/Sub // (https://cloud.google.com/pubsub) as a notification channel. To use Google // Cloud Pub/Sub as the channel, this must be the name of a Cloud Pub/Sub topic // that uses the Cloud Pub/Sub topic name format documented in // https://cloud.google.com/pubsub/docs/overview. ProducerNotificationChannel string `json:"producerNotificationChannel,omitempty"` // Requirements: Requirements that must be satisfied before a consumer project // can use the service. Each requirement is of the form /; for example // 'serviceusage.googleapis.com/billing-enabled'. For Google APIs, a Terms of // Service requirement must be included here. Google Cloud APIs must include // "serviceusage.googleapis.com/tos/cloud". Other Google APIs should include // "serviceusage.googleapis.com/tos/universal". Additional ToS can be included // based on the business needs. Requirements []string `json:"requirements,omitempty"` // Rules: A list of usage rules that apply to individual API methods. **NOTE:** // All service configuration rules follow "last one wins" order. Rules []*UsageRule `json:"rules,omitempty"` // ForceSendFields is a list of field names (e.g. // "ProducerNotificationChannel") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API // requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields // for more details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ProducerNotificationChannel") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *Usage) MarshalJSON() ([]byte, error) { type NoMethod Usage return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } // UsageRule: Usage configuration rules for the service. NOTE: Under // development. Use this rule to configure unregistered calls for the service. // Unregistered calls are calls that do not contain consumer project identity. // (Example: calls that do not contain an API key). By default, API methods do // not allow unregistered calls, and each method call must be identified by a // consumer project identity. Use this rule to allow/disallow unregistered // calls. Example of an API that wants to allow unregistered calls for entire // service. usage: rules: - selector: "*" allow_unregistered_calls: true // Example of a method that wants to allow unregistered calls. usage: rules: - // selector: "google.example.library.v1.LibraryService.CreateBook" // allow_unregistered_calls: true type UsageRule struct { // AllowUnregisteredCalls: If true, the selected method allows unregistered // calls, e.g. calls that don't identify any user or application. AllowUnregisteredCalls bool `json:"allowUnregisteredCalls,omitempty"` // Selector: Selects the methods to which this rule applies. Use '*' to // indicate all methods in all APIs. Refer to selector for syntax details. Selector string `json:"selector,omitempty"` // SkipServiceControl: If true, the selected method should skip service control // and the control plane features, such as quota and billing, will not be // available. This flag is used by Google Cloud Endpoints to bypass checks for // internal methods, such as service health check methods. SkipServiceControl bool `json:"skipServiceControl,omitempty"` // ForceSendFields is a list of field names (e.g. "AllowUnregisteredCalls") to // unconditionally include in API requests. By default, fields with empty or // default values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more // details. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AllowUnregisteredCalls") to // include in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. See // https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details. NullFields []string `json:"-"` } func (s *UsageRule) MarshalJSON() ([]byte, error) { type NoMethod UsageRule return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields) } type OperationsGetCall struct { s *APIService name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets the latest state of a long-running operation. Clients can use this // method to poll the operation result at intervals as recommended by the API // service. // // - name: The name of the operation resource. func (r *OperationsService) Get(name string) *OperationsGetCall { c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *OperationsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.operations.get" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type OperationsListCall struct { s *APIService urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists service operations that match the specified filter in the // request. func (r *OperationsService) List() *OperationsListCall { c := &OperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c } // Filter sets the optional parameter "filter": A string for filtering // Operations. The following filter fields are supported: * serviceName: // Required. Only `=` operator is allowed. * startTime: The time this job was // started, in ISO 8601 format. Allowed operators are `>=`, `>`, `<=`, and `<`. // * status: Can be `done`, `in_progress`, or `failed`. Allowed operators are // `=`, and `!=`. Filter expression supports conjunction (AND) and disjunction // (OR) logical operators. However, the serviceName restriction must be at the // top-level and can only be combined with other restrictions via the AND // logical operator. Examples: * `serviceName={some-service}.googleapis.com` * // `serviceName={some-service}.googleapis.com AND startTime>="2017-02-01" * // `serviceName={some-service}.googleapis.com AND status=done` * // `serviceName={some-service}.googleapis.com AND (status=done OR // startTime>="2017-02-01")` func (c *OperationsListCall) Filter(filter string) *OperationsListCall { c.urlParams_.Set("filter", filter) return c } // Name sets the optional parameter "name": Not used. func (c *OperationsListCall) Name(name string) *OperationsListCall { c.urlParams_.Set("name", name) return c } // PageSize sets the optional parameter "pageSize": The maximum number of // operations to return. If unspecified, defaults to 50. The maximum value is // 100. func (c *OperationsListCall) PageSize(pageSize int64) *OperationsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The standard list page // token. func (c *OperationsListCall) PageToken(pageToken string) *OperationsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *OperationsListCall) Fields(s ...googleapi.Field) *OperationsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *OperationsListCall) IfNoneMatch(entityTag string) *OperationsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *OperationsListCall) Context(ctx context.Context) *OperationsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *OperationsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *OperationsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/operations") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.operations.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListOperationsResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified was // returned. func (c *OperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ListOperationsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *OperationsListCall) Pages(ctx context.Context, f func(*ListOperationsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type ServicesCreateCall struct { s *APIService managedservice *ManagedService urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates a new managed service. A managed service is immutable, and // is subject to mandatory 30-day data retention. You cannot move a service or // recreate it within 30 days after deletion. One producer project can own no // more than 500 services. For security and reliability purposes, a production // service should be hosted in a dedicated producer project. Operation func (r *ServicesService) Create(managedservice *ManagedService) *ServicesCreateCall { c := &ServicesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.managedservice = managedservice return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesCreateCall) Fields(s ...googleapi.Field) *ServicesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesCreateCall) Context(ctx context.Context) *ServicesCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.managedservice) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.create" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesDeleteCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes a managed service. This method will change the service to // the `Soft-Delete` state for 30 days. Within this period, service producers // may call UndeleteService to restore the service. After 30 days, the service // will be permanently deleted. Operation // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesService) Delete(serviceName string) *ServicesDeleteCall { c := &ServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesDeleteCall) Fields(s ...googleapi.Field) *ServicesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesDeleteCall) Context(ctx context.Context) *ServicesDeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.delete" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesGenerateConfigReportCall struct { s *APIService generateconfigreportrequest *GenerateConfigReportRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // GenerateConfigReport: Generates and returns a report (errors, warnings and // changes from existing configurations) associated with // GenerateConfigReportRequest.new_value If // GenerateConfigReportRequest.old_value is specified, // GenerateConfigReportRequest will contain a single ChangeReport based on the // comparison between GenerateConfigReportRequest.new_value and // GenerateConfigReportRequest.old_value. If // GenerateConfigReportRequest.old_value is not specified, this method will // compare GenerateConfigReportRequest.new_value with the last pushed service // configuration. func (r *ServicesService) GenerateConfigReport(generateconfigreportrequest *GenerateConfigReportRequest) *ServicesGenerateConfigReportCall { c := &ServicesGenerateConfigReportCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.generateconfigreportrequest = generateconfigreportrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesGenerateConfigReportCall) Fields(s ...googleapi.Field) *ServicesGenerateConfigReportCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesGenerateConfigReportCall) Context(ctx context.Context) *ServicesGenerateConfigReportCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesGenerateConfigReportCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesGenerateConfigReportCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.generateconfigreportrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services:generateConfigReport") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.generateConfigReport" call. // Any non-2xx status code is an error. Response headers are in either // *GenerateConfigReportResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was because // http.StatusNotModified was returned. func (c *ServicesGenerateConfigReportCall) Do(opts ...googleapi.CallOption) (*GenerateConfigReportResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &GenerateConfigReportResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesGetCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets a managed service. Authentication is required unless the service // is public. // // - serviceName: The name of the service. See the `ServiceManager` overview // for naming requirements. For example: `example.googleapis.com`. func (r *ServicesService) Get(serviceName string) *ServicesGetCall { c := &ServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesGetCall) Fields(s ...googleapi.Field) *ServicesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesGetCall) IfNoneMatch(entityTag string) *ServicesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesGetCall) Context(ctx context.Context) *ServicesGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.get" call. // Any non-2xx status code is an error. Response headers are in either // *ManagedService.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesGetCall) Do(opts ...googleapi.CallOption) (*ManagedService, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ManagedService{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesGetConfigCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // GetConfig: Gets a service configuration (version) for a managed service. // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesService) GetConfig(serviceName string) *ServicesGetConfigCall { c := &ServicesGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // ConfigId sets the optional parameter "configId": Required. The id of the // service configuration resource. This field must be specified for the server // to return all fields, including `SourceInfo`. func (c *ServicesGetConfigCall) ConfigId(configId string) *ServicesGetConfigCall { c.urlParams_.Set("configId", configId) return c } // View sets the optional parameter "view": Specifies which parts of the // Service Config should be returned in the response. // // Possible values: // // "BASIC" - Server response includes all fields except SourceInfo. // "FULL" - Server response includes all fields including SourceInfo. // // SourceFiles are of type 'google.api.servicemanagement.v1.ConfigFile' and are // only available for configs created using the SubmitConfigSource method. func (c *ServicesGetConfigCall) View(view string) *ServicesGetConfigCall { c.urlParams_.Set("view", view) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesGetConfigCall) Fields(s ...googleapi.Field) *ServicesGetConfigCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesGetConfigCall) IfNoneMatch(entityTag string) *ServicesGetConfigCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesGetConfigCall) Context(ctx context.Context) *ServicesGetConfigCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesGetConfigCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesGetConfigCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/config") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.getConfig" call. // Any non-2xx status code is an error. Response headers are in either // *Service.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesGetConfigCall) Do(opts ...googleapi.CallOption) (*Service, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Service{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesGetIamPolicyCall struct { s *APIService resource string getiampolicyrequest *GetIamPolicyRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // GetIamPolicy: Gets the access control policy for a resource. Returns an // empty policy if the resource exists and does not have a policy set. // // - resource: REQUIRED: The resource for which the policy is being requested. // See Resource names (https://cloud.google.com/apis/design/resource_names) // for the appropriate value for this field. func (r *ServicesService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ServicesGetIamPolicyCall { c := &ServicesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.getiampolicyrequest = getiampolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesGetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesGetIamPolicyCall) Context(ctx context.Context) *ServicesGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either // *Policy.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesListCall struct { s *APIService urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists managed services. Returns all public services. For authenticated // users, also returns all services the calling user has // "servicemanagement.services.get" permission for. func (r *ServicesService) List() *ServicesListCall { c := &ServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c } // ConsumerId sets the optional parameter "consumerId": Include services // consumed by the specified consumer. The Google Service Management // implementation accepts the following forms: - project: func (c *ServicesListCall) ConsumerId(consumerId string) *ServicesListCall { c.urlParams_.Set("consumerId", consumerId) return c } // PageSize sets the optional parameter "pageSize": The max number of items to // include in the response list. Page size is 50 if not specified. Maximum // value is 500. func (c *ServicesListCall) PageSize(pageSize int64) *ServicesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": Token identifying which // result to start with; returned by a previous list call. func (c *ServicesListCall) PageToken(pageToken string) *ServicesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ProducerProjectId sets the optional parameter "producerProjectId": Include // services produced by the specified project. func (c *ServicesListCall) ProducerProjectId(producerProjectId string) *ServicesListCall { c.urlParams_.Set("producerProjectId", producerProjectId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesListCall) Fields(s ...googleapi.Field) *ServicesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesListCall) IfNoneMatch(entityTag string) *ServicesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesListCall) Context(ctx context.Context) *ServicesListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListServicesResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified was // returned. func (c *ServicesListCall) Do(opts ...googleapi.CallOption) (*ListServicesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ListServicesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ServicesListCall) Pages(ctx context.Context, f func(*ListServicesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type ServicesSetIamPolicyCall struct { s *APIService resource string setiampolicyrequest *SetIamPolicyRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // SetIamPolicy: Sets the access control policy on the specified resource. // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, // and `PERMISSION_DENIED` errors. // // - resource: REQUIRED: The resource for which the policy is being specified. // See Resource names (https://cloud.google.com/apis/design/resource_names) // for the appropriate value for this field. func (r *ServicesService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ServicesSetIamPolicyCall { c := &ServicesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.setiampolicyrequest = setiampolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesSetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesSetIamPolicyCall) Context(ctx context.Context) *ServicesSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either // *Policy.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesTestIamPermissionsCall struct { s *APIService resource string testiampermissionsrequest *TestIamPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // TestIamPermissions: Returns permissions that a caller has on the specified // resource. If the resource does not exist, this will return an empty set of // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be // used for building permission-aware UIs and command-line tools, not for // authorization checking. This operation may "fail open" without warning. // // - resource: REQUIRED: The resource for which the policy detail is being // requested. See Resource names // (https://cloud.google.com/apis/design/resource_names) for the appropriate // value for this field. func (r *ServicesService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ServicesTestIamPermissionsCall { c := &ServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.testiampermissionsrequest = testiampermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServicesTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesTestIamPermissionsCall) Context(ctx context.Context) *ServicesTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was because // http.StatusNotModified was returned. func (c *ServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &TestIamPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesUndeleteCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Undelete: Revives a previously deleted managed service. The method restores // the service using the configuration at the time the service was deleted. The // target service must exist and must have been deleted within the last 30 // days. Operation // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesService) Undelete(serviceName string) *ServicesUndeleteCall { c := &ServicesUndeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesUndeleteCall) Fields(s ...googleapi.Field) *ServicesUndeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesUndeleteCall) Context(ctx context.Context) *ServicesUndeleteCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesUndeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesUndeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}:undelete") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.undelete" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesUndeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConfigsCreateCall struct { s *APIService serviceName string service *Service urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates a new service configuration (version) for a managed service. // This method only stores the service configuration. To roll out the service // configuration to backend systems please call CreateServiceRollout. Only the // 100 most recent service configurations and ones referenced by existing // rollouts are kept for each service. The rest will be deleted eventually. // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesConfigsService) Create(serviceName string, service *Service) *ServicesConfigsCreateCall { c := &ServicesConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.service = service return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConfigsCreateCall) Fields(s ...googleapi.Field) *ServicesConfigsCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConfigsCreateCall) Context(ctx context.Context) *ServicesConfigsCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConfigsCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConfigsCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.service) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.configs.create" call. // Any non-2xx status code is an error. Response headers are in either // *Service.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesConfigsCreateCall) Do(opts ...googleapi.CallOption) (*Service, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Service{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConfigsGetCall struct { s *APIService serviceName string configId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets a service configuration (version) for a managed service. // // - configId: The id of the service configuration resource. This field must be // specified for the server to return all fields, including `SourceInfo`. // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesConfigsService) Get(serviceName string, configId string) *ServicesConfigsGetCall { c := &ServicesConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.configId = configId return c } // View sets the optional parameter "view": Specifies which parts of the // Service Config should be returned in the response. // // Possible values: // // "BASIC" - Server response includes all fields except SourceInfo. // "FULL" - Server response includes all fields including SourceInfo. // // SourceFiles are of type 'google.api.servicemanagement.v1.ConfigFile' and are // only available for configs created using the SubmitConfigSource method. func (c *ServicesConfigsGetCall) View(view string) *ServicesConfigsGetCall { c.urlParams_.Set("view", view) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConfigsGetCall) Fields(s ...googleapi.Field) *ServicesConfigsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesConfigsGetCall) IfNoneMatch(entityTag string) *ServicesConfigsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConfigsGetCall) Context(ctx context.Context) *ServicesConfigsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConfigsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConfigsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs/{configId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, "configId": c.configId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.configs.get" call. // Any non-2xx status code is an error. Response headers are in either // *Service.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesConfigsGetCall) Do(opts ...googleapi.CallOption) (*Service, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Service{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConfigsListCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists the history of the service configuration for a managed service, // from the newest to the oldest. // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesConfigsService) List(serviceName string) *ServicesConfigsListCall { c := &ServicesConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // PageSize sets the optional parameter "pageSize": The max number of items to // include in the response list. Page size is 50 if not specified. Maximum // value is 100. func (c *ServicesConfigsListCall) PageSize(pageSize int64) *ServicesConfigsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The token of the page to // retrieve. func (c *ServicesConfigsListCall) PageToken(pageToken string) *ServicesConfigsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConfigsListCall) Fields(s ...googleapi.Field) *ServicesConfigsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesConfigsListCall) IfNoneMatch(entityTag string) *ServicesConfigsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConfigsListCall) Context(ctx context.Context) *ServicesConfigsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConfigsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConfigsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.configs.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListServiceConfigsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was because // http.StatusNotModified was returned. func (c *ServicesConfigsListCall) Do(opts ...googleapi.CallOption) (*ListServiceConfigsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ListServiceConfigsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ServicesConfigsListCall) Pages(ctx context.Context, f func(*ListServiceConfigsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } type ServicesConfigsSubmitCall struct { s *APIService serviceName string submitconfigsourcerequest *SubmitConfigSourceRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Submit: Creates a new service configuration (version) for a managed service // based on user-supplied configuration source files (for example: OpenAPI // Specification). This method stores the source configurations as well as the // generated service configuration. To rollout the service configuration to // other services, please call CreateServiceRollout. Only the 100 most recent // configuration sources and ones referenced by existing service configurtions // are kept for each service. The rest will be deleted eventually. Operation // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesConfigsService) Submit(serviceName string, submitconfigsourcerequest *SubmitConfigSourceRequest) *ServicesConfigsSubmitCall { c := &ServicesConfigsSubmitCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.submitconfigsourcerequest = submitconfigsourcerequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConfigsSubmitCall) Fields(s ...googleapi.Field) *ServicesConfigsSubmitCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConfigsSubmitCall) Context(ctx context.Context) *ServicesConfigsSubmitCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConfigsSubmitCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConfigsSubmitCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.submitconfigsourcerequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/configs:submit") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.configs.submit" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesConfigsSubmitCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConsumersGetIamPolicyCall struct { s *APIService resource string getiampolicyrequest *GetIamPolicyRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // GetIamPolicy: Gets the access control policy for a resource. Returns an // empty policy if the resource exists and does not have a policy set. // // - resource: REQUIRED: The resource for which the policy is being requested. // See Resource names (https://cloud.google.com/apis/design/resource_names) // for the appropriate value for this field. func (r *ServicesConsumersService) GetIamPolicy(resource string, getiampolicyrequest *GetIamPolicyRequest) *ServicesConsumersGetIamPolicyCall { c := &ServicesConsumersGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.getiampolicyrequest = getiampolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConsumersGetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesConsumersGetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConsumersGetIamPolicyCall) Context(ctx context.Context) *ServicesConsumersGetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConsumersGetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConsumersGetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.getiampolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:getIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.consumers.getIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either // *Policy.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesConsumersGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConsumersSetIamPolicyCall struct { s *APIService resource string setiampolicyrequest *SetIamPolicyRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // SetIamPolicy: Sets the access control policy on the specified resource. // Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, // and `PERMISSION_DENIED` errors. // // - resource: REQUIRED: The resource for which the policy is being specified. // See Resource names (https://cloud.google.com/apis/design/resource_names) // for the appropriate value for this field. func (r *ServicesConsumersService) SetIamPolicy(resource string, setiampolicyrequest *SetIamPolicyRequest) *ServicesConsumersSetIamPolicyCall { c := &ServicesConsumersSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.setiampolicyrequest = setiampolicyrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConsumersSetIamPolicyCall) Fields(s ...googleapi.Field) *ServicesConsumersSetIamPolicyCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConsumersSetIamPolicyCall) Context(ctx context.Context) *ServicesConsumersSetIamPolicyCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConsumersSetIamPolicyCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConsumersSetIamPolicyCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.setiampolicyrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:setIamPolicy") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.consumers.setIamPolicy" call. // Any non-2xx status code is an error. Response headers are in either // *Policy.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesConsumersSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Policy{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesConsumersTestIamPermissionsCall struct { s *APIService resource string testiampermissionsrequest *TestIamPermissionsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // TestIamPermissions: Returns permissions that a caller has on the specified // resource. If the resource does not exist, this will return an empty set of // permissions, not a `NOT_FOUND` error. Note: This operation is designed to be // used for building permission-aware UIs and command-line tools, not for // authorization checking. This operation may "fail open" without warning. // // - resource: REQUIRED: The resource for which the policy detail is being // requested. See Resource names // (https://cloud.google.com/apis/design/resource_names) for the appropriate // value for this field. func (r *ServicesConsumersService) TestIamPermissions(resource string, testiampermissionsrequest *TestIamPermissionsRequest) *ServicesConsumersTestIamPermissionsCall { c := &ServicesConsumersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resource = resource c.testiampermissionsrequest = testiampermissionsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesConsumersTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServicesConsumersTestIamPermissionsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesConsumersTestIamPermissionsCall) Context(ctx context.Context) *ServicesConsumersTestIamPermissionsCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesConsumersTestIamPermissionsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesConsumersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.testiampermissionsrequest) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+resource}:testIamPermissions") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.consumers.testIamPermissions" call. // Any non-2xx status code is an error. Response headers are in either // *TestIamPermissionsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was because // http.StatusNotModified was returned. func (c *ServicesConsumersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestIamPermissionsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &TestIamPermissionsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesRolloutsCreateCall struct { s *APIService serviceName string rollout *Rollout urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates a new service configuration rollout. Based on rollout, the // Google Service Management will roll out the service configurations to // different backend services. For example, the logging configuration will be // pushed to Google Cloud Logging. Please note that any previous pending and // running Rollouts and associated Operations will be automatically cancelled // so that the latest Rollout will not be blocked by previous Rollouts. Only // the 100 most recent (in any state) and the last 10 successful (if not // already part of the set of 100 most recent) rollouts are kept for each // service. The rest will be deleted eventually. Operation // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesRolloutsService) Create(serviceName string, rollout *Rollout) *ServicesRolloutsCreateCall { c := &ServicesRolloutsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.rollout = rollout return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesRolloutsCreateCall) Fields(s ...googleapi.Field) *ServicesRolloutsCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. func (c *ServicesRolloutsCreateCall) Context(ctx context.Context) *ServicesRolloutsCreateCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesRolloutsCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesRolloutsCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollout) if err != nil { return nil, err } c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.rollouts.create" call. // Any non-2xx status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesRolloutsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesRolloutsGetCall struct { s *APIService serviceName string rolloutId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets a service configuration rollout. // // - rolloutId: The id of the rollout resource. // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesRolloutsService) Get(serviceName string, rolloutId string) *ServicesRolloutsGetCall { c := &ServicesRolloutsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName c.rolloutId = rolloutId return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesRolloutsGetCall) Fields(s ...googleapi.Field) *ServicesRolloutsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesRolloutsGetCall) IfNoneMatch(entityTag string) *ServicesRolloutsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesRolloutsGetCall) Context(ctx context.Context) *ServicesRolloutsGetCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesRolloutsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesRolloutsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts/{rolloutId}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, "rolloutId": c.rolloutId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.rollouts.get" call. // Any non-2xx status code is an error. Response headers are in either // *Rollout.ServerResponse.Header or (if a response was returned at all) in // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check // whether the returned error was because http.StatusNotModified was returned. func (c *ServicesRolloutsGetCall) Do(opts ...googleapi.CallOption) (*Rollout, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &Rollout{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } type ServicesRolloutsListCall struct { s *APIService serviceName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists the history of the service configuration rollouts for a managed // service, from the newest to the oldest. // // - serviceName: The name of the service. See the overview // (https://cloud.google.com/service-management/overview) for naming // requirements. For example: `example.googleapis.com`. func (r *ServicesRolloutsService) List(serviceName string) *ServicesRolloutsListCall { c := &ServicesRolloutsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.serviceName = serviceName return c } // Filter sets the optional parameter "filter": Required. Use `filter` to // return subset of rollouts. The following filters are supported: -- By // status. For example, `filter='status=SUCCESS'` -- By strategy. For example, // `filter='strategy=TrafficPercentStrategy'` func (c *ServicesRolloutsListCall) Filter(filter string) *ServicesRolloutsListCall { c.urlParams_.Set("filter", filter) return c } // PageSize sets the optional parameter "pageSize": The max number of items to // include in the response list. Page size is 50 if not specified. Maximum // value is 100. func (c *ServicesRolloutsListCall) PageSize(pageSize int64) *ServicesRolloutsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The token of the page to // retrieve. func (c *ServicesRolloutsListCall) PageToken(pageToken string) *ServicesRolloutsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more // details. func (c *ServicesRolloutsListCall) Fields(s ...googleapi.Field) *ServicesRolloutsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets an optional parameter which makes the operation fail if the // object's ETag matches the given value. This is useful for getting updates // only after the object has changed since the last request. func (c *ServicesRolloutsListCall) IfNoneMatch(entityTag string) *ServicesRolloutsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. func (c *ServicesRolloutsListCall) Context(ctx context.Context) *ServicesRolloutsListCall { c.ctx_ = ctx return c } // Header returns a http.Header that can be modified by the caller to add // headers to the request. func (c *ServicesRolloutsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ServicesRolloutsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/services/{serviceName}/rollouts") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "serviceName": c.serviceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "servicemanagement.services.rollouts.list" call. // Any non-2xx status code is an error. Response headers are in either // *ListServiceRolloutsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was because // http.StatusNotModified was returned. func (c *ServicesRolloutsListCall) Do(opts ...googleapi.CallOption) (*ListServiceRolloutsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, gensupport.WrapError(&googleapi.Error{ Code: res.StatusCode, Header: res.Header, }) } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, gensupport.WrapError(err) } ret := &ListServiceRolloutsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ServicesRolloutsListCall) Pages(ctx context.Context, f func(*ListServiceRolloutsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } }