generated/google/apis/servicemanagement_v1/classes.rb in google-api-client-0.13.2 vs generated/google/apis/servicemanagement_v1/classes.rb in google-api-client-0.13.3
- old
+ new
@@ -20,697 +20,773 @@
module Google
module Apis
module ServicemanagementV1
- # 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.
- class ConfigChange
+ # Generated advice about this change, used for providing more
+ # information about how a change will affect the existing service.
+ class Advice
include Google::Apis::Core::Hashable
- # The type for this change, either ADDED, REMOVED, or MODIFIED.
- # Corresponds to the JSON property `changeType`
+ # Useful description for why this advice was applied and what actions should
+ # be taken to mitigate any implied risks.
+ # Corresponds to the JSON property `description`
# @return [String]
- attr_accessor :change_type
+ attr_accessor :description
- # 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.CreateBook"].restriction
- # - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
- # - logging.producer_destinations[0]
- # Corresponds to the JSON property `element`
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @description = args[:description] if args.key?(:description)
+ end
+ end
+
+ # 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.
+ class Api
+ include Google::Apis::Core::Hashable
+
+ # The methods of this interface, in unspecified order.
+ # Corresponds to the JSON property `methods`
+ # @return [Array<Google::Apis::ServicemanagementV1::MethodProp>]
+ attr_accessor :methods_prop
+
+ # Included interfaces. See Mixin.
+ # Corresponds to the JSON property `mixins`
+ # @return [Array<Google::Apis::ServicemanagementV1::Mixin>]
+ attr_accessor :mixins
+
+ # The fully qualified name of this interface, including package name
+ # followed by the interface's simple name.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :element
+ attr_accessor :name
- # Collection of advice provided for this change, useful for determining the
- # possible impact of this change.
- # Corresponds to the JSON property `advices`
- # @return [Array<Google::Apis::ServicemanagementV1::Advice>]
- attr_accessor :advices
+ # Any metadata attached to the interface.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
- # Value of the changed object in the old Service configuration,
- # in JSON format. This field will not be populated if ChangeType == ADDED.
- # Corresponds to the JSON property `oldValue`
+ # `SourceContext` represents information about the source of a
+ # protobuf element, like the file in which it is defined.
+ # Corresponds to the JSON property `sourceContext`
+ # @return [Google::Apis::ServicemanagementV1::SourceContext]
+ attr_accessor :source_context
+
+ # The source syntax of the service.
+ # Corresponds to the JSON property `syntax`
# @return [String]
- attr_accessor :old_value
+ attr_accessor :syntax
- # Value of the changed object in the new Service configuration,
- # in JSON format. This field will not be populated if ChangeType == REMOVED.
- # Corresponds to the JSON property `newValue`
+ # 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<major-version>`, 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.
+ # Corresponds to the JSON property `version`
# @return [String]
- attr_accessor :new_value
+ attr_accessor :version
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @change_type = args[:change_type] if args.key?(:change_type)
- @element = args[:element] if args.key?(:element)
- @advices = args[:advices] if args.key?(:advices)
- @old_value = args[:old_value] if args.key?(:old_value)
- @new_value = args[:new_value] if args.key?(:new_value)
+ @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
+ @mixins = args[:mixins] if args.key?(:mixins)
+ @name = args[:name] if args.key?(:name)
+ @options = args[:options] if args.key?(:options)
+ @source_context = args[:source_context] if args.key?(:source_context)
+ @syntax = args[:syntax] if args.key?(:syntax)
+ @version = args[:version] if args.key?(:version)
end
end
- # ### 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.
- class SystemParameters
+ # 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
+ # AuditConfig are exempted.
+ # Example Policy with multiple AuditConfigs:
+ # `
+ # "audit_configs": [
+ # `
+ # "service": "allServices"
+ # "audit_log_configs": [
+ # `
+ # "log_type": "DATA_READ",
+ # "exempted_members": [
+ # "user:foo@gmail.com"
+ # ]
+ # `,
+ # `
+ # "log_type": "DATA_WRITE",
+ # `,
+ # `
+ # "log_type": "ADMIN_READ",
+ # `
+ # ]
+ # `,
+ # `
+ # "service": "fooservice.googleapis.com"
+ # "audit_log_configs": [
+ # `
+ # "log_type": "DATA_READ",
+ # `,
+ # `
+ # "log_type": "DATA_WRITE",
+ # "exempted_members": [
+ # "user:bar@gmail.com"
+ # ]
+ # `
+ # ]
+ # `
+ # ]
+ # `
+ # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
+ # logging. It also exempts foo@gmail.com from DATA_READ logging, and
+ # bar@gmail.com from DATA_WRITE logging.
+ class AuditConfig
include Google::Apis::Core::Hashable
- # 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.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::SystemParameterRule>]
- attr_accessor :rules
+ # The configuration for logging of each type of permission.
+ # Next ID: 4
+ # Corresponds to the JSON property `auditLogConfigs`
+ # @return [Array<Google::Apis::ServicemanagementV1::AuditLogConfig>]
+ attr_accessor :audit_log_configs
+ #
+ # Corresponds to the JSON property `exemptedMembers`
+ # @return [Array<String>]
+ attr_accessor :exempted_members
+
+ # 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.
+ # Corresponds to the JSON property `service`
+ # @return [String]
+ attr_accessor :service
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @rules = args[:rules] if args.key?(:rules)
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
+ @service = args[:service] if args.key?(:service)
end
end
- # 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.
- class Rollout
+ # Provides the configuration for logging a type of permissions.
+ # Example:
+ # `
+ # "audit_log_configs": [
+ # `
+ # "log_type": "DATA_READ",
+ # "exempted_members": [
+ # "user:foo@gmail.com"
+ # ]
+ # `,
+ # `
+ # "log_type": "DATA_WRITE",
+ # `
+ # ]
+ # `
+ # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
+ # foo@gmail.com from DATA_READ logging.
+ class AuditLogConfig
include Google::Apis::Core::Hashable
- # The status of this rollout. Readonly. In case of a failed rollout,
- # the system will automatically rollback to the current Rollout
- # version. Readonly.
- # Corresponds to the JSON property `status`
+ # Specifies the identities that do not cause logging for this type of
+ # permission.
+ # Follows the same format of Binding.members.
+ # Corresponds to the JSON property `exemptedMembers`
+ # @return [Array<String>]
+ attr_accessor :exempted_members
+
+ # The log type that this config enables.
+ # Corresponds to the JSON property `logType`
# @return [String]
- attr_accessor :status
+ attr_accessor :log_type
- # The name of the service associated with this Rollout.
- # Corresponds to the JSON property `serviceName`
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
+ @log_type = args[:log_type] if args.key?(:log_type)
+ end
+ end
+
+ # Configuration for an anthentication provider, including support for
+ # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
+ # token-32).
+ class AuthProvider
+ include Google::Apis::Core::Hashable
+
+ # 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.
+ # LibraryService".
+ # Example:
+ # audiences: bookstore_android.apps.googleusercontent.com,
+ # bookstore_web.apps.googleusercontent.com
+ # Corresponds to the JSON property `audiences`
# @return [String]
- attr_accessor :service_name
+ attr_accessor :audiences
- # The user who created the Rollout. Readonly.
- # Corresponds to the JSON property `createdBy`
+ # Redirect URL if JWT token is required but no present or is expired.
+ # Implement authorizationUrl of securityDefinitions in OpenAPI spec.
+ # Corresponds to the JSON property `authorizationUrl`
# @return [String]
- attr_accessor :created_by
+ attr_accessor :authorization_url
- # 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 precentage 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
- # `
- # `
- # `
- # Corresponds to the JSON property `trafficPercentStrategy`
- # @return [Google::Apis::ServicemanagementV1::TrafficPercentStrategy]
- attr_accessor :traffic_percent_strategy
+ # The unique identifier of the auth provider. It will be referred to by
+ # `AuthRequirement.provider_id`.
+ # Example: "bookstore_auth".
+ # Corresponds to the JSON property `id`
+ # @return [String]
+ attr_accessor :id
- # Optional unique identifier of this Rollout. 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 <date><revision number>, 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'
- # Corresponds to the JSON property `rolloutId`
+ # 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
+ # Corresponds to the JSON property `issuer`
# @return [String]
- attr_accessor :rollout_id
+ attr_accessor :issuer
- # Strategy used to delete a service. This strategy is a placeholder only
- # used by the system generated rollout to delete a service.
- # Corresponds to the JSON property `deleteServiceStrategy`
- # @return [Google::Apis::ServicemanagementV1::DeleteServiceStrategy]
- attr_accessor :delete_service_strategy
+ # 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
+ # Corresponds to the JSON property `jwksUri`
+ # @return [String]
+ attr_accessor :jwks_uri
- # Creation time of the rollout. Readonly.
- # Corresponds to the JSON property `createTime`
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @audiences = args[:audiences] if args.key?(:audiences)
+ @authorization_url = args[:authorization_url] if args.key?(:authorization_url)
+ @id = args[:id] if args.key?(:id)
+ @issuer = args[:issuer] if args.key?(:issuer)
+ @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri)
+ end
+ end
+
+ # User-defined authentication requirements, including support for
+ # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
+ # token-32).
+ class AuthRequirement
+ include Google::Apis::Core::Hashable
+
+ # 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.
+ # LibraryService".
+ # Example:
+ # audiences: bookstore_android.apps.googleusercontent.com,
+ # bookstore_web.apps.googleusercontent.com
+ # Corresponds to the JSON property `audiences`
# @return [String]
- attr_accessor :create_time
+ attr_accessor :audiences
+ # id from authentication provider.
+ # Example:
+ # provider_id: bookstore_auth
+ # Corresponds to the JSON property `providerId`
+ # @return [String]
+ attr_accessor :provider_id
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @status = args[:status] if args.key?(:status)
- @service_name = args[:service_name] if args.key?(:service_name)
- @created_by = args[:created_by] if args.key?(:created_by)
- @traffic_percent_strategy = args[:traffic_percent_strategy] if args.key?(:traffic_percent_strategy)
- @rollout_id = args[:rollout_id] if args.key?(:rollout_id)
- @delete_service_strategy = args[:delete_service_strategy] if args.key?(:delete_service_strategy)
- @create_time = args[:create_time] if args.key?(:create_time)
+ @audiences = args[:audiences] if args.key?(:audiences)
+ @provider_id = args[:provider_id] if args.key?(:provider_id)
end
end
- # Quota configuration helps to achieve fairness and budgeting in service
- # usage.
- # The 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:
- # - 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:
+ # `Authentication` defines the authentication configuration for an API.
+ # Example for an API targeted for external use:
+ # 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: "*"
- # 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
- class Quota
+ # requirements:
+ # provider_id: google_calendar_auth
+ class Authentication
include Google::Apis::Core::Hashable
- # List of `QuotaLimit` definitions for the service.
- # Corresponds to the JSON property `limits`
- # @return [Array<Google::Apis::ServicemanagementV1::QuotaLimit>]
- attr_accessor :limits
+ # Defines a set of authentication providers that a service supports.
+ # Corresponds to the JSON property `providers`
+ # @return [Array<Google::Apis::ServicemanagementV1::AuthProvider>]
+ attr_accessor :providers
- # List of `MetricRule` definitions, each one mapping a selected method to one
- # or more metrics.
- # Corresponds to the JSON property `metricRules`
- # @return [Array<Google::Apis::ServicemanagementV1::MetricRule>]
- attr_accessor :metric_rules
+ # A list of authentication rules that apply to individual API methods.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::AuthenticationRule>]
+ attr_accessor :rules
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @limits = args[:limits] if args.key?(:limits)
- @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
+ @providers = args[:providers] if args.key?(:providers)
+ @rules = args[:rules] if args.key?(:rules)
end
end
- # Request message for GenerateConfigReport method.
- class GenerateConfigReportRequest
+ # 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.
+ class AuthenticationRule
include Google::Apis::Core::Hashable
- # 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
- # Corresponds to the JSON property `oldConfig`
- # @return [Hash<String,Object>]
- attr_accessor :old_config
+ # Whether to allow requests without a credential. The credential can be
+ # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+ # For requests without credentials, if the service control environment is
+ # specified, each incoming request **must** be associated with a service
+ # consumer. This can be done by passing an API key that belongs to a consumer
+ # project.
+ # Corresponds to the JSON property `allowWithoutCredential`
+ # @return [Boolean]
+ attr_accessor :allow_without_credential
+ alias_method :allow_without_credential?, :allow_without_credential
- # 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
- # Corresponds to the JSON property `newConfig`
- # @return [Hash<String,Object>]
- attr_accessor :new_config
+ # Configuration for a custom authentication provider.
+ # Corresponds to the JSON property `customAuth`
+ # @return [Google::Apis::ServicemanagementV1::CustomAuthRequirements]
+ attr_accessor :custom_auth
+ # 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.
+ # Corresponds to the JSON property `oauth`
+ # @return [Google::Apis::ServicemanagementV1::OAuthRequirements]
+ attr_accessor :oauth
+
+ # Requirements for additional authentication providers.
+ # Corresponds to the JSON property `requirements`
+ # @return [Array<Google::Apis::ServicemanagementV1::AuthRequirement>]
+ attr_accessor :requirements
+
+ # Selects the methods to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
+ # @return [String]
+ attr_accessor :selector
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @old_config = args[:old_config] if args.key?(:old_config)
- @new_config = args[:new_config] if args.key?(:new_config)
+ @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential)
+ @custom_auth = args[:custom_auth] if args.key?(:custom_auth)
+ @oauth = args[:oauth] if args.key?(:oauth)
+ @requirements = args[:requirements] if args.key?(:requirements)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # Request message for `SetIamPolicy` method.
- class SetIamPolicyRequest
+ # Configuration of authorization.
+ # This section determines the authorization provider, if unspecified, then no
+ # authorization check will be done.
+ # Example:
+ # experimental:
+ # authorization:
+ # provider: firebaserules.googleapis.com
+ class AuthorizationConfig
include Google::Apis::Core::Hashable
- # 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"
- # This field is only used by Cloud IAM.
- # Corresponds to the JSON property `updateMask`
+ # The name of the authorization provider, such as
+ # firebaserules.googleapis.com.
+ # Corresponds to the JSON property `provider`
# @return [String]
- attr_accessor :update_mask
+ attr_accessor :provider
- # Defines an Identity and Access Management (IAM) policy. It is used to
- # specify access control policies for Cloud Platform resources.
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
- # `members` to a `role`, where the members can be user accounts, Google groups,
- # Google domains, and service accounts. A `role` is a named list of permissions
- # defined by IAM.
- # **Example**
- # `
- # "bindings": [
- # `
- # "role": "roles/owner",
- # "members": [
- # "user:mike@example.com",
- # "group:admins@example.com",
- # "domain:google.com",
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
- # ]
- # `,
- # `
- # "role": "roles/viewer",
- # "members": ["user:sean@example.com"]
- # `
- # ]
- # `
- # For a description of IAM and its features, see the
- # [IAM developer's guide](https://cloud.google.com/iam).
- # Corresponds to the JSON property `policy`
- # @return [Google::Apis::ServicemanagementV1::Policy]
- attr_accessor :policy
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @update_mask = args[:update_mask] if args.key?(:update_mask)
- @policy = args[:policy] if args.key?(:policy)
+ @provider = args[:provider] if args.key?(:provider)
end
end
- # Strategy used to delete a service. This strategy is a placeholder only
- # used by the system generated rollout to delete a service.
- class DeleteServiceStrategy
+ # `Backend` defines the backend configuration for a service.
+ class Backend
include Google::Apis::Core::Hashable
+ # A list of API backend rules that apply to individual API methods.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::BackendRule>]
+ attr_accessor :rules
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
+ @rules = args[:rules] if args.key?(:rules)
end
end
- # Represents the status of one operation step.
- class Step
+ # A backend rule provides configuration for an individual API element.
+ class BackendRule
include Google::Apis::Core::Hashable
- # The status code.
- # Corresponds to the JSON property `status`
+ # The address of the API backend.
+ # Corresponds to the JSON property `address`
# @return [String]
- attr_accessor :status
+ attr_accessor :address
- # The short description of the step.
- # Corresponds to the JSON property `description`
+ # The number of seconds to wait for a response from a request. The
+ # default depends on the deployment context.
+ # Corresponds to the JSON property `deadline`
+ # @return [Float]
+ attr_accessor :deadline
+
+ # Minimum deadline in seconds needed for this method. Calls having deadline
+ # value lower than this will be rejected.
+ # Corresponds to the JSON property `minDeadline`
+ # @return [Float]
+ attr_accessor :min_deadline
+
+ # Selects the methods to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
# @return [String]
- attr_accessor :description
+ attr_accessor :selector
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @status = args[:status] if args.key?(:status)
- @description = args[:description] if args.key?(:description)
+ @address = args[:address] if args.key?(:address)
+ @deadline = args[:deadline] if args.key?(:deadline)
+ @min_deadline = args[:min_deadline] if args.key?(:min_deadline)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # Configuration of a specific logging destination (the producer project
- # or the consumer project).
- class LoggingDestination
+ # Associates `members` with a `role`.
+ class Binding
include Google::Apis::Core::Hashable
- # 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 "/".
- # Corresponds to the JSON property `logs`
+ # Represents an expression text. Example:
+ # title: "User account presence"
+ # description: "Determines whether the request has a user account"
+ # expression: "size(request.user) > 0"
+ # Corresponds to the JSON property `condition`
+ # @return [Google::Apis::ServicemanagementV1::Expr]
+ attr_accessor :condition
+
+ # Specifies the identities requesting access for a Cloud Platform 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.
+ # * `user:`emailid``: An email address that represents a specific Google
+ # account. For example, `alice@gmail.com` or `joe@example.com`.
+ # * `serviceAccount:`emailid``: An email address that represents a service
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
+ # * `group:`emailid``: An email address that represents a Google group.
+ # For example, `admins@example.com`.
+ # * `domain:`domain``: A Google Apps domain name that represents all the
+ # users of that domain. For example, `google.com` or `example.com`.
+ # Corresponds to the JSON property `members`
# @return [Array<String>]
- attr_accessor :logs
+ attr_accessor :members
- # The monitored resource type. The type must be defined in the
- # Service.monitored_resources section.
- # Corresponds to the JSON property `monitoredResource`
+ # Role that is assigned to `members`.
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+ # Required
+ # Corresponds to the JSON property `role`
# @return [String]
- attr_accessor :monitored_resource
+ attr_accessor :role
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @logs = args[:logs] if args.key?(:logs)
- @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
+ @condition = args[:condition] if args.key?(:condition)
+ @members = args[:members] if args.key?(:members)
+ @role = args[:role] if args.key?(:role)
end
end
- # A protocol buffer option, which can be attached to a message, field,
- # enumeration, etc.
- class Option
+ # Change report associated with a particular service configuration.
+ # It contains a list of ConfigChanges based on the comparison between
+ # two service configurations.
+ class ChangeReport
include Google::Apis::Core::Hashable
- # 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.
- # Corresponds to the JSON property `value`
- # @return [Hash<String,Object>]
- attr_accessor :value
+ # 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
+ # Corresponds to the JSON property `configChanges`
+ # @return [Array<Google::Apis::ServicemanagementV1::ConfigChange>]
+ attr_accessor :config_changes
- # 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"`.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @value = args[:value] if args.key?(:value)
- @name = args[:name] if args.key?(:name)
+ @config_changes = args[:config_changes] if args.key?(:config_changes)
end
end
- # 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
- class Logging
+ # Write a Cloud Audit log
+ class CloudAuditOptions
include Google::Apis::Core::Hashable
- # 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.
- # Corresponds to the JSON property `consumerDestinations`
- # @return [Array<Google::Apis::ServicemanagementV1::LoggingDestination>]
- attr_accessor :consumer_destinations
+ # The log_name to populate in the Cloud Audit Record.
+ # Corresponds to the JSON property `logName`
+ # @return [String]
+ attr_accessor :log_name
- # 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.
- # Corresponds to the JSON property `producerDestinations`
- # @return [Array<Google::Apis::ServicemanagementV1::LoggingDestination>]
- attr_accessor :producer_destinations
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
- @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
+ @log_name = args[:log_name] if args.key?(:log_name)
end
end
- # Method represents a method of an api.
- class MethodProp
+ # A condition to be met.
+ class Condition
include Google::Apis::Core::Hashable
- # If true, the response is streamed.
- # Corresponds to the JSON property `responseStreaming`
- # @return [Boolean]
- attr_accessor :response_streaming
- alias_method :response_streaming?, :response_streaming
+ # Trusted attributes supplied by the IAM system.
+ # Corresponds to the JSON property `iam`
+ # @return [String]
+ attr_accessor :iam
- # The simple name of this method.
- # Corresponds to the JSON property `name`
+ # An operator to apply the subject with.
+ # Corresponds to the JSON property `op`
# @return [String]
- attr_accessor :name
+ attr_accessor :op
- # A URL of the input message type.
- # Corresponds to the JSON property `requestTypeUrl`
+ # Trusted attributes discharged by the service.
+ # Corresponds to the JSON property `svc`
# @return [String]
- attr_accessor :request_type_url
+ attr_accessor :svc
- # If true, the request is streamed.
- # Corresponds to the JSON property `requestStreaming`
- # @return [Boolean]
- attr_accessor :request_streaming
- alias_method :request_streaming?, :request_streaming
-
- # The source syntax of this method.
- # Corresponds to the JSON property `syntax`
+ # Trusted attributes supplied by any service that owns resources and uses
+ # the IAM system for access control.
+ # Corresponds to the JSON property `sys`
# @return [String]
- attr_accessor :syntax
+ attr_accessor :sys
- # The URL of the output message type.
- # Corresponds to the JSON property `responseTypeUrl`
+ # DEPRECATED. Use 'values' instead.
+ # Corresponds to the JSON property `value`
# @return [String]
- attr_accessor :response_type_url
+ attr_accessor :value
- # Any metadata attached to the method.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
+ # The objects of the condition. This is mutually exclusive with 'value'.
+ # Corresponds to the JSON property `values`
+ # @return [Array<String>]
+ attr_accessor :values
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @response_streaming = args[:response_streaming] if args.key?(:response_streaming)
- @name = args[:name] if args.key?(:name)
- @request_type_url = args[:request_type_url] if args.key?(:request_type_url)
- @request_streaming = args[:request_streaming] if args.key?(:request_streaming)
- @syntax = args[:syntax] if args.key?(:syntax)
- @response_type_url = args[:response_type_url] if args.key?(:response_type_url)
- @options = args[:options] if args.key?(:options)
+ @iam = args[:iam] if args.key?(:iam)
+ @op = args[:op] if args.key?(:op)
+ @svc = args[:svc] if args.key?(:svc)
+ @sys = args[:sys] if args.key?(:sys)
+ @value = args[:value] if args.key?(:value)
+ @values = args[:values] if args.key?(:values)
end
end
- # `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`.
- class QuotaLimit
+ # 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.
+ class ConfigChange
include Google::Apis::Core::Hashable
- # 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.
- # The [Google Service Control](https://cloud.google.com/service-control)
- # supports the following unit components:
- # * One of the time intevals:
- # * "/min" for quota every minute.
- # * "/d" for quota every 24 hours, starting 00:00 US Pacific Time.
- # * Otherwise the quota won't be reset by time, such as storage limit.
- # * One and only one of the granted containers:
- # * "/`project`" quota for a project
- # 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.
- # Used by metric-based quotas only.
- # Corresponds to the JSON property `unit`
+ # Collection of advice provided for this change, useful for determining the
+ # possible impact of this change.
+ # Corresponds to the JSON property `advices`
+ # @return [Array<Google::Apis::ServicemanagementV1::Advice>]
+ attr_accessor :advices
+
+ # The type for this change, either ADDED, REMOVED, or MODIFIED.
+ # Corresponds to the JSON property `changeType`
# @return [String]
- attr_accessor :unit
+ attr_accessor :change_type
- # 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.
- # Corresponds to the JSON property `maxLimit`
- # @return [Fixnum]
- attr_accessor :max_limit
+ # 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.CreateBook"].restriction
+ # - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value
+ # - logging.producer_destinations[0]
+ # Corresponds to the JSON property `element`
+ # @return [String]
+ attr_accessor :element
- # Name of the quota limit. The name is used to refer to the limit when
- # overriding the default limit on per-consumer basis.
- # For metric-based quota limits, 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.
- # The name of a limit is used as a unique identifier for this limit.
- # Therefore, once a limit has been put into use, its name should be
- # immutable. You can use the display_name field to provide a user-friendly
- # name for the limit. The display name can be evolved over time without
- # affecting the identity of the limit.
- # Corresponds to the JSON property `name`
+ # Value of the changed object in the new Service configuration,
+ # in JSON format. This field will not be populated if ChangeType == REMOVED.
+ # Corresponds to the JSON property `newValue`
# @return [String]
- attr_accessor :name
+ attr_accessor :new_value
- # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
- # For duration longer than a day, only multiple of days is supported. We
- # support only "100s" and "1d" for now. Additional support will be added in
- # the future. "0" indicates indefinite duration.
- # Used by group-based quotas only.
- # Corresponds to the JSON property `duration`
+ # Value of the changed object in the old Service configuration,
+ # in JSON format. This field will not be populated if ChangeType == ADDED.
+ # Corresponds to the JSON property `oldValue`
# @return [String]
- attr_accessor :duration
+ attr_accessor :old_value
- # 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.
- # Corresponds to the JSON property `freeTier`
- # @return [Fixnum]
- attr_accessor :free_tier
+ def initialize(**args)
+ update!(**args)
+ end
- # 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.
- # Corresponds to the JSON property `defaultLimit`
- # @return [Fixnum]
- attr_accessor :default_limit
+ # Update properties of this object
+ def update!(**args)
+ @advices = args[:advices] if args.key?(:advices)
+ @change_type = args[:change_type] if args.key?(:change_type)
+ @element = args[:element] if args.key?(:element)
+ @new_value = args[:new_value] if args.key?(:new_value)
+ @old_value = args[:old_value] if args.key?(:old_value)
+ end
+ end
- # 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.
- # Corresponds to the JSON property `displayName`
+ # Generic specification of a source configuration file
+ class ConfigFile
+ include Google::Apis::Core::Hashable
+
+ # The bytes that constitute the file.
+ # Corresponds to the JSON property `fileContents`
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
# @return [String]
- attr_accessor :display_name
+ attr_accessor :file_contents
- # 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`).
- # Corresponds to the JSON property `description`
+ # The file name of the configuration file (full or relative path).
+ # Corresponds to the JSON property `filePath`
# @return [String]
- attr_accessor :description
+ attr_accessor :file_path
- # 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.
- # Used by metric-based quotas only.
- # Corresponds to the JSON property `metric`
+ # The type of configuration file this represents.
+ # Corresponds to the JSON property `fileType`
# @return [String]
- attr_accessor :metric
+ attr_accessor :file_type
- # Tiered limit values, currently only STANDARD is supported.
- # Corresponds to the JSON property `values`
- # @return [Hash<String,Fixnum>]
- attr_accessor :values
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @unit = args[:unit] if args.key?(:unit)
- @max_limit = args[:max_limit] if args.key?(:max_limit)
- @name = args[:name] if args.key?(:name)
- @duration = args[:duration] if args.key?(:duration)
- @free_tier = args[:free_tier] if args.key?(:free_tier)
- @default_limit = args[:default_limit] if args.key?(:default_limit)
- @display_name = args[:display_name] if args.key?(:display_name)
- @description = args[:description] if args.key?(:description)
- @metric = args[:metric] if args.key?(:metric)
- @values = args[:values] if args.key?(:values)
+ @file_contents = args[:file_contents] if args.key?(:file_contents)
+ @file_path = args[:file_path] if args.key?(:file_path)
+ @file_type = args[:file_type] if args.key?(:file_type)
end
end
# Represents a service configuration with its name and id.
class ConfigRef
@@ -730,206 +806,143 @@
def update!(**args)
@name = args[:name] if args.key?(:name)
end
end
- # Response message for ListServiceRollouts method.
- class ListServiceRolloutsResponse
+ # Represents a source file which is used to generate the service configuration
+ # defined by `google.api.Service`.
+ class ConfigSource
include Google::Apis::Core::Hashable
- # The token of the next page of results.
- # Corresponds to the JSON property `nextPageToken`
+ # Set of source configuration files that are used to generate a service
+ # configuration (`google.api.Service`).
+ # Corresponds to the JSON property `files`
+ # @return [Array<Google::Apis::ServicemanagementV1::ConfigFile>]
+ attr_accessor :files
+
+ # 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.
+ # Corresponds to the JSON property `id`
# @return [String]
- attr_accessor :next_page_token
+ attr_accessor :id
- # The list of rollout resources.
- # Corresponds to the JSON property `rollouts`
- # @return [Array<Google::Apis::ServicemanagementV1::Rollout>]
- attr_accessor :rollouts
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
- @rollouts = args[:rollouts] if args.key?(:rollouts)
+ @files = args[:files] if args.key?(:files)
+ @id = args[:id] if args.key?(:id)
end
end
- # Declares an API to be included in this API. The including API must
- # redeclare all the methods from the included API, 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 API 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";
- # `
- # ...
- # `
- class Mixin
+ # `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`.
+ class Context
include Google::Apis::Core::Hashable
- # The fully qualified name of the API which is included.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
+ # A list of RPC context rules that apply to individual API methods.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::ContextRule>]
+ attr_accessor :rules
- # If non-empty specifies a path under which inherited HTTP paths
- # are rooted.
- # Corresponds to the JSON property `root`
- # @return [String]
- attr_accessor :root
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @name = args[:name] if args.key?(:name)
- @root = args[:root] if args.key?(:root)
+ @rules = args[:rules] if args.key?(:rules)
end
end
- # The metadata associated with a long running operation resource.
- class FlowOperationMetadata
+ # A context rule provides information about the context for an individual API
+ # element.
+ class ContextRule
include Google::Apis::Core::Hashable
- # Deadline for the flow to complete, to prevent orphaned Operations.
- # If the flow has not completed by this time, it may be terminated by
- # the engine, or force-failed by Operation lookup.
- # Note that this is not a hard deadline after which the Flow will
- # definitely be failed, rather it is a deadline after which it is reasonable
- # to suspect a problem and other parts of the system may kill operation
- # to ensure we don't have orphans.
- # see also: go/prevent-orphaned-operations
- # Corresponds to the JSON property `deadline`
- # @return [String]
- attr_accessor :deadline
+ # A list of full type names of provided contexts.
+ # Corresponds to the JSON property `provided`
+ # @return [Array<String>]
+ attr_accessor :provided
- # The state of the operation with respect to cancellation.
- # Corresponds to the JSON property `cancelState`
- # @return [String]
- attr_accessor :cancel_state
-
- # The start time of the operation.
- # Corresponds to the JSON property `startTime`
- # @return [String]
- attr_accessor :start_time
-
- # The full name of the resources that this flow is directly associated with.
- # Corresponds to the JSON property `resourceNames`
+ # A list of full type names of requested contexts.
+ # Corresponds to the JSON property `requested`
# @return [Array<String>]
- attr_accessor :resource_names
+ attr_accessor :requested
- # The name of the top-level flow corresponding to this operation.
- # Must be equal to the "name" field for a FlowName enum.
- # Corresponds to the JSON property `flowName`
+ # Selects the methods to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
# @return [String]
- attr_accessor :flow_name
+ attr_accessor :selector
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @deadline = args[:deadline] if args.key?(:deadline)
- @cancel_state = args[:cancel_state] if args.key?(:cancel_state)
- @start_time = args[:start_time] if args.key?(:start_time)
- @resource_names = args[:resource_names] if args.key?(:resource_names)
- @flow_name = args[:flow_name] if args.key?(:flow_name)
+ @provided = args[:provided] if args.key?(:provided)
+ @requested = args[:requested] if args.key?(:requested)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # 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
- class CustomError
+ # Selects and configures the service controller used by the service. The
+ # service controller handles features like abuse, quota, billing, logging,
+ # monitoring, etc.
+ class Control
include Google::Apis::Core::Hashable
- # The list of custom error rules that apply to individual API messages.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::CustomErrorRule>]
- attr_accessor :rules
+ # The service control environment to use. If empty, no control plane
+ # feature (like quota and billing) will be enabled.
+ # Corresponds to the JSON property `environment`
+ # @return [String]
+ attr_accessor :environment
- # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
- # Corresponds to the JSON property `types`
- # @return [Array<String>]
- attr_accessor :types
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @rules = args[:rules] if args.key?(:rules)
- @types = args[:types] if args.key?(:types)
+ @environment = args[:environment] if args.key?(:environment)
end
end
- # Options for counters
+ # Increment a streamz counter with the specified metric and field names.
+ # Metric names should start with a '/', generally be lowercase-only,
+ # and end in "_count". Field names should not contain an initial slash.
+ # The actual exported metric names will have "/iam/policy" prepended.
+ # Field names correspond to IAM request parameters and field values are
+ # their respective values.
+ # At present the only supported field names are
+ # - "iam_principal", corresponding to IAMContext.principal;
+ # - "" (empty string), resulting in one aggretated counter with no field.
+ # Examples:
+ # counter ` metric: "/debug_access_count" field: "iam_principal" `
+ # ==> increment counter /iam/policy/backend_debug_access_count
+ # `iam_principal=[value of IAMContext.principal]`
+ # At this time we do not support:
+ # * multiple field names (though this may be supported in the future)
+ # * decrementing the counter
+ # * incrementing it by anything other than 1
class CounterOptions
include Google::Apis::Core::Hashable
# The field value to attribute.
# Corresponds to the JSON property `field`
@@ -950,385 +963,350 @@
@field = args[:field] if args.key?(:field)
@metric = args[:metric] if args.key?(:metric)
end
end
- # 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.
- class Http
+ # Configuration for a custom authentication provider.
+ class CustomAuthRequirements
include Google::Apis::Core::Hashable
- # A list of HTTP configuration rules that apply to individual API methods.
+ # A configuration string containing connection information for the
+ # authentication provider, typically formatted as a SmartService string
+ # (go/smartservice).
+ # Corresponds to the JSON property `provider`
+ # @return [String]
+ attr_accessor :provider
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @provider = args[:provider] if args.key?(:provider)
+ end
+ end
+
+ # 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
+ class CustomError
+ include Google::Apis::Core::Hashable
+
+ # The list of custom error rules that apply to individual API messages.
# **NOTE:** All service configuration rules follow "last one wins" order.
# Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::HttpRule>]
+ # @return [Array<Google::Apis::ServicemanagementV1::CustomErrorRule>]
attr_accessor :rules
- # When set to true, URL path parmeters 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.
- # Corresponds to the JSON property `fullyDecodeReservedExpansion`
- # @return [Boolean]
- attr_accessor :fully_decode_reserved_expansion
- alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion
+ # The list of custom error detail types, e.g. 'google.foo.v1.CustomError'.
+ # Corresponds to the JSON property `types`
+ # @return [Array<String>]
+ attr_accessor :types
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@rules = args[:rules] if args.key?(:rules)
- @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion)
+ @types = args[:types] if args.key?(:types)
end
end
- # Source information used to create a Service Config
- class SourceInfo
+ # A custom error rule.
+ class CustomErrorRule
include Google::Apis::Core::Hashable
- # All files used during config generation.
- # Corresponds to the JSON property `sourceFiles`
- # @return [Array<Hash<String,Object>>]
- attr_accessor :source_files
+ # Mark this message as possible payload in error response. Otherwise,
+ # objects of this type will be filtered when they appear in error payload.
+ # Corresponds to the JSON property `isErrorType`
+ # @return [Boolean]
+ attr_accessor :is_error_type
+ alias_method :is_error_type?, :is_error_type
+ # Selects messages to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
+ # @return [String]
+ attr_accessor :selector
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @source_files = args[:source_files] if args.key?(:source_files)
+ @is_error_type = args[:is_error_type] if args.key?(:is_error_type)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # Selects and configures the service controller used by the service. The
- # service controller handles features like abuse, quota, billing, logging,
- # monitoring, etc.
- class Control
+ # A custom pattern is used for defining custom HTTP verb.
+ class CustomHttpPattern
include Google::Apis::Core::Hashable
- # The service control environment to use. If empty, no control plane
- # feature (like quota and billing) will be enabled.
- # Corresponds to the JSON property `environment`
+ # The name of this custom HTTP verb.
+ # Corresponds to the JSON property `kind`
# @return [String]
- attr_accessor :environment
+ attr_accessor :kind
+ # The path matched by this custom verb.
+ # Corresponds to the JSON property `path`
+ # @return [String]
+ attr_accessor :path
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @environment = args[:environment] if args.key?(:environment)
+ @kind = args[:kind] if args.key?(:kind)
+ @path = args[:path] if args.key?(:path)
end
end
- # 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.
- class SystemParameter
+ # Write a Data Access (Gin) log
+ class DataAccessOptions
include Google::Apis::Core::Hashable
- # Define the URL query parameter name to use for the parameter. It is case
- # sensitive.
- # Corresponds to the JSON property `urlQueryParameter`
+ # Whether Gin logging should happen in a fail-closed manner at the caller.
+ # This is relevant only in the LocalIAM implementation, for now.
+ # Corresponds to the JSON property `logMode`
# @return [String]
- attr_accessor :url_query_parameter
+ attr_accessor :log_mode
- # Define the HTTP header name to use for the parameter. It is case
- # insensitive.
- # Corresponds to the JSON property `httpHeader`
- # @return [String]
- attr_accessor :http_header
-
- # Define the name of the parameter, such as "api_key" . It is case sensitive.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter)
- @http_header = args[:http_header] if args.key?(:http_header)
- @name = args[:name] if args.key?(:name)
+ @log_mode = args[:log_mode] if args.key?(:log_mode)
end
end
- # 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/overdue_count` metric is only sent to the
- # consumer 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.
- # metrics:
- # - name: library.googleapis.com/book/returned_count
- # metric_kind: DELTA
- # value_type: INT64
- # labels:
- # - key: /customer_id
- # - name: library.googleapis.com/book/overdue_count
- # metric_kind: GAUGE
- # value_type: INT64
- # labels:
- # - key: /customer_id
- # 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/overdue_count
- class Monitoring
+ # Strategy used to delete a service. This strategy is a placeholder only
+ # used by the system generated rollout to delete a service.
+ class DeleteServiceStrategy
include Google::Apis::Core::Hashable
- # Monitoring configurations for sending metrics to the consumer project.
- # There can be multiple consumer destinations, each one must have a
- # different monitored resource type. A metric can be used in at most
- # one consumer destination.
- # Corresponds to the JSON property `consumerDestinations`
- # @return [Array<Google::Apis::ServicemanagementV1::MonitoringDestination>]
- attr_accessor :consumer_destinations
-
- # Monitoring configurations for sending metrics to the producer project.
- # There can be multiple producer destinations, each one must have a
- # different monitored resource type. A metric can be used in at most
- # one producer destination.
- # Corresponds to the JSON property `producerDestinations`
- # @return [Array<Google::Apis::ServicemanagementV1::MonitoringDestination>]
- attr_accessor :producer_destinations
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
- @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
end
end
- # A single field of a message type.
- class Field
+ # Represents a diagnostic message (error or warning)
+ class Diagnostic
include Google::Apis::Core::Hashable
- # The field number.
- # Corresponds to the JSON property `number`
- # @return [Fixnum]
- attr_accessor :number
-
- # The field type.
+ # The kind of diagnostic information provided.
# Corresponds to the JSON property `kind`
# @return [String]
attr_accessor :kind
- # The field JSON name.
- # Corresponds to the JSON property `jsonName`
+ # File name and line number of the error or warning.
+ # Corresponds to the JSON property `location`
# @return [String]
- attr_accessor :json_name
+ attr_accessor :location
- # The protocol buffer options.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
-
- # 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.
- # Corresponds to the JSON property `oneofIndex`
- # @return [Fixnum]
- attr_accessor :oneof_index
-
- # Whether to use alternative packed wire representation.
- # Corresponds to the JSON property `packed`
- # @return [Boolean]
- attr_accessor :packed
- alias_method :packed?, :packed
-
- # The field cardinality.
- # Corresponds to the JSON property `cardinality`
+ # Message describing the error or warning.
+ # Corresponds to the JSON property `message`
# @return [String]
- attr_accessor :cardinality
+ attr_accessor :message
- # The string value of the default value of this field. Proto2 syntax only.
- # Corresponds to the JSON property `defaultValue`
- # @return [String]
- attr_accessor :default_value
-
- # The field name.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
-
- # The field type URL, without the scheme, for message or enumeration
- # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
- # Corresponds to the JSON property `typeUrl`
- # @return [String]
- attr_accessor :type_url
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @number = args[:number] if args.key?(:number)
@kind = args[:kind] if args.key?(:kind)
- @json_name = args[:json_name] if args.key?(:json_name)
- @options = args[:options] if args.key?(:options)
- @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
- @packed = args[:packed] if args.key?(:packed)
- @cardinality = args[:cardinality] if args.key?(:cardinality)
- @default_value = args[:default_value] if args.key?(:default_value)
- @name = args[:name] if args.key?(:name)
- @type_url = args[:type_url] if args.key?(:type_url)
+ @location = args[:location] if args.key?(:location)
+ @message = args[:message] if args.key?(:message)
end
end
- # Request message for `TestIamPermissions` method.
- class TestIamPermissionsRequest
+ # Request message for DisableService method.
+ class DisableServiceRequest
include Google::Apis::Core::Hashable
- # 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).
- # Corresponds to the JSON property `permissions`
- # @return [Array<String>]
- attr_accessor :permissions
+ # The identity of consumer resource which service disablement will be
+ # applied to.
+ # The Google Service Management implementation accepts the following
+ # forms:
+ # - "project:<project_id>"
+ # Note: this is made compatible with
+ # google.api.servicecontrol.v1.Operation.consumer_id.
+ # Corresponds to the JSON property `consumerId`
+ # @return [String]
+ attr_accessor :consumer_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @permissions = args[:permissions] if args.key?(:permissions)
+ @consumer_id = args[:consumer_id] if args.key?(:consumer_id)
end
end
- # Enum type definition.
- class Enum
+ # `Documentation` provides the information for describing a service.
+ # Example:
+ # <pre><code>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: >
+ # ...
+ # </code></pre>
+ # 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:
+ # <pre><code>[fully.qualified.proto.name][]</code></pre>
+ # To override the display text used for the link, this can be used:
+ # <pre><code>[display text][fully.qualified.proto.name]</code></pre>
+ # Text can be excluded from doc using the following notation:
+ # <pre><code>(-- internal comment --)</code></pre>
+ # Comments can be made conditional using a visibility label. The below
+ # text will be only rendered if the `BETA` label is available:
+ # <pre><code>(--BETA: comment for BETA users --)</code></pre>
+ # 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:
+ # <pre><code>(== include path/to/file ==)</code></pre>
+ # 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:
+ # <pre><code>(== resource_for v1.shelves.books ==)</code></pre>
+ # The directive `suppress_warning` does not directly affect documentation
+ # and is documented together with service config validation.
+ class Documentation
include Google::Apis::Core::Hashable
- # Protocol buffer options.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
+ # The URL to the root of documentation.
+ # Corresponds to the JSON property `documentationRootUrl`
+ # @return [String]
+ attr_accessor :documentation_root_url
- # The source syntax.
- # Corresponds to the JSON property `syntax`
+ # Declares a single overview page. For example:
+ # <pre><code>documentation:
+ # summary: ...
+ # overview: (== include overview.md ==)
+ # </code></pre>
+ # This is a shortcut for the following declaration (using pages style):
+ # <pre><code>documentation:
+ # summary: ...
+ # pages:
+ # - name: Overview
+ # content: (== include overview.md ==)
+ # </code></pre>
+ # Note: you cannot specify both `overview` field and `pages` field.
+ # Corresponds to the JSON property `overview`
# @return [String]
- attr_accessor :syntax
+ attr_accessor :overview
- # `SourceContext` represents information about the source of a
- # protobuf element, like the file in which it is defined.
- # Corresponds to the JSON property `sourceContext`
- # @return [Google::Apis::ServicemanagementV1::SourceContext]
- attr_accessor :source_context
+ # The top level pages for the documentation set.
+ # Corresponds to the JSON property `pages`
+ # @return [Array<Google::Apis::ServicemanagementV1::Page>]
+ attr_accessor :pages
- # Enum value definitions.
- # Corresponds to the JSON property `enumvalue`
- # @return [Array<Google::Apis::ServicemanagementV1::EnumValue>]
- attr_accessor :enumvalue
+ # A list of documentation rules that apply to individual API elements.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::DocumentationRule>]
+ attr_accessor :rules
- # Enum type name.
- # Corresponds to the JSON property `name`
+ # A short summary of what the service does. Can only be provided by
+ # plain text.
+ # Corresponds to the JSON property `summary`
# @return [String]
- attr_accessor :name
+ attr_accessor :summary
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @options = args[:options] if args.key?(:options)
- @syntax = args[:syntax] if args.key?(:syntax)
- @source_context = args[:source_context] if args.key?(:source_context)
- @enumvalue = args[:enumvalue] if args.key?(:enumvalue)
- @name = args[:name] if args.key?(:name)
+ @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url)
+ @overview = args[:overview] if args.key?(:overview)
+ @pages = args[:pages] if args.key?(:pages)
+ @rules = args[:rules] if args.key?(:rules)
+ @summary = args[:summary] if args.key?(:summary)
end
end
- # A description of a label.
- class LabelDescriptor
+ # A documentation rule provides information about individual API elements.
+ class DocumentationRule
include Google::Apis::Core::Hashable
- # The type of data that can be assigned to the label.
- # Corresponds to the JSON property `valueType`
+ # Deprecation description of the selected element(s). It can be provided if an
+ # element is marked as `deprecated`.
+ # Corresponds to the JSON property `deprecationDescription`
# @return [String]
- attr_accessor :value_type
+ attr_accessor :deprecation_description
- # The label key.
- # Corresponds to the JSON property `key`
- # @return [String]
- attr_accessor :key
-
- # A human-readable description for the label.
+ # Description of the selected API(s).
# Corresponds to the JSON property `description`
# @return [String]
attr_accessor :description
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @value_type = args[:value_type] if args.key?(:value_type)
- @key = args[:key] if args.key?(:key)
- @description = args[:description] if args.key?(:description)
- end
- end
-
- # Represents a diagnostic message (error or warning)
- class Diagnostic
- include Google::Apis::Core::Hashable
-
- # The kind of diagnostic information provided.
- # Corresponds to the JSON property `kind`
+ # The selector is a comma-separated list of patterns. 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". To
+ # specify a default for all applicable elements, the whole pattern "*"
+ # is used.
+ # Corresponds to the JSON property `selector`
# @return [String]
- attr_accessor :kind
+ attr_accessor :selector
- # Message describing the error or warning.
- # Corresponds to the JSON property `message`
- # @return [String]
- attr_accessor :message
-
- # File name and line number of the error or warning.
- # Corresponds to the JSON property `location`
- # @return [String]
- attr_accessor :location
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @kind = args[:kind] if args.key?(:kind)
- @message = args[:message] if args.key?(:message)
- @location = args[:location] if args.key?(:location)
+ @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description)
+ @description = args[:description] if args.key?(:description)
+ @selector = args[:selector] if args.key?(:selector)
end
end
# Request message for EnableService method.
class EnableServiceRequest
@@ -1353,122 +1331,159 @@
def update!(**args)
@consumer_id = args[:consumer_id] if args.key?(:consumer_id)
end
end
- # A protocol buffer message type.
- class Type
+ # `Endpoint` describes a network endpoint that serves a set of APIs.
+ # A service may expose any number of endpoints, and all endpoints share the
+ # same service configuration, such as quota configuration and monitoring
+ # configuration.
+ # Example service configuration:
+ # name: library-example.googleapis.com
+ # endpoints:
+ # # Below entry makes 'google.example.library.v1.Library'
+ # # API be served from endpoint address library-example.googleapis.com.
+ # # It also allows HTTP OPTIONS calls to be passed to the backend, for
+ # # it to decide whether the subsequent cross-origin request is
+ # # allowed to proceed.
+ # - name: library-example.googleapis.com
+ # allow_cors: true
+ class Endpoint
include Google::Apis::Core::Hashable
- # The list of fields.
- # Corresponds to the JSON property `fields`
- # @return [Array<Google::Apis::ServicemanagementV1::Field>]
- attr_accessor :fields
+ # DEPRECATED: This field is no longer supported. Instead of using aliases,
+ # please specify multiple google.api.Endpoint for each of the intented
+ # alias.
+ # Additional names that this endpoint will be hosted on.
+ # Corresponds to the JSON property `aliases`
+ # @return [Array<String>]
+ attr_accessor :aliases
- # The fully qualified message name.
+ # 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.
+ # Corresponds to the JSON property `allowCors`
+ # @return [Boolean]
+ attr_accessor :allow_cors
+ alias_method :allow_cors?, :allow_cors
+
+ # The list of APIs served by this endpoint.
+ # If no APIs are specified this translates to "all APIs" exported by the
+ # service, as defined in the top-level service configuration.
+ # Corresponds to the JSON property `apis`
+ # @return [Array<String>]
+ attr_accessor :apis
+
+ # The list of features enabled on this endpoint.
+ # Corresponds to the JSON property `features`
+ # @return [Array<String>]
+ attr_accessor :features
+
+ # The canonical name of this endpoint.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
- # The list of types appearing in `oneof` definitions in this type.
- # Corresponds to the JSON property `oneofs`
- # @return [Array<String>]
- attr_accessor :oneofs
-
- # The source syntax.
- # Corresponds to the JSON property `syntax`
+ # 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".
+ # Corresponds to the JSON property `target`
# @return [String]
- attr_accessor :syntax
+ attr_accessor :target
- # `SourceContext` represents information about the source of a
- # protobuf element, like the file in which it is defined.
- # Corresponds to the JSON property `sourceContext`
- # @return [Google::Apis::ServicemanagementV1::SourceContext]
- attr_accessor :source_context
-
- # The protocol buffer options.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @fields = args[:fields] if args.key?(:fields)
+ @aliases = args[:aliases] if args.key?(:aliases)
+ @allow_cors = args[:allow_cors] if args.key?(:allow_cors)
+ @apis = args[:apis] if args.key?(:apis)
+ @features = args[:features] if args.key?(:features)
@name = args[:name] if args.key?(:name)
- @oneofs = args[:oneofs] if args.key?(:oneofs)
- @syntax = args[:syntax] if args.key?(:syntax)
- @source_context = args[:source_context] if args.key?(:source_context)
- @options = args[:options] if args.key?(:options)
+ @target = args[:target] if args.key?(:target)
end
end
- # Response message for GenerateConfigReport method.
- class GenerateConfigReportResponse
+ # Enum type definition.
+ class Enum
include Google::Apis::Core::Hashable
- # Errors / Linter warnings associated with the service definition this
- # report
- # belongs to.
- # Corresponds to the JSON property `diagnostics`
- # @return [Array<Google::Apis::ServicemanagementV1::Diagnostic>]
- attr_accessor :diagnostics
+ # Enum value definitions.
+ # Corresponds to the JSON property `enumvalue`
+ # @return [Array<Google::Apis::ServicemanagementV1::EnumValue>]
+ attr_accessor :enumvalue
- # Name of the service this report belongs to.
- # Corresponds to the JSON property `serviceName`
+ # Enum type name.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :service_name
+ attr_accessor :name
- # list of ChangeReport, each corresponding to comparison between two
- # service configurations.
- # Corresponds to the JSON property `changeReports`
- # @return [Array<Google::Apis::ServicemanagementV1::ChangeReport>]
- attr_accessor :change_reports
+ # Protocol buffer options.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
- # ID of the service configuration this report belongs to.
- # Corresponds to the JSON property `id`
+ # `SourceContext` represents information about the source of a
+ # protobuf element, like the file in which it is defined.
+ # Corresponds to the JSON property `sourceContext`
+ # @return [Google::Apis::ServicemanagementV1::SourceContext]
+ attr_accessor :source_context
+
+ # The source syntax.
+ # Corresponds to the JSON property `syntax`
# @return [String]
- attr_accessor :id
+ attr_accessor :syntax
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
- @service_name = args[:service_name] if args.key?(:service_name)
- @change_reports = args[:change_reports] if args.key?(:change_reports)
- @id = args[:id] if args.key?(:id)
+ @enumvalue = args[:enumvalue] if args.key?(:enumvalue)
+ @name = args[:name] if args.key?(:name)
+ @options = args[:options] if args.key?(:options)
+ @source_context = args[:source_context] if args.key?(:source_context)
+ @syntax = args[:syntax] if args.key?(:syntax)
end
end
- # Response message for ListServiceConfigs method.
- class ListServiceConfigsResponse
+ # Enum value definition.
+ class EnumValue
include Google::Apis::Core::Hashable
- # The list of service configuration resources.
- # Corresponds to the JSON property `serviceConfigs`
- # @return [Array<Google::Apis::ServicemanagementV1::Service>]
- attr_accessor :service_configs
-
- # The token of the next page of results.
- # Corresponds to the JSON property `nextPageToken`
+ # Enum value name.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :next_page_token
+ attr_accessor :name
+ # Enum value number.
+ # Corresponds to the JSON property `number`
+ # @return [Fixnum]
+ attr_accessor :number
+
+ # Protocol buffer options.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @service_configs = args[:service_configs] if args.key?(:service_configs)
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @name = args[:name] if args.key?(:name)
+ @number = args[:number] if args.key?(:number)
+ @options = args[:options] if args.key?(:options)
end
end
# Experimental service configuration. These configuration options can
# only be used by whitelisted users.
@@ -1494,811 +1509,758 @@
def update!(**args)
@authorization = args[:authorization] if args.key?(:authorization)
end
end
- # `Backend` defines the backend configuration for a service.
- class Backend
+ # Represents an expression text. Example:
+ # title: "User account presence"
+ # description: "Determines whether the request has a user account"
+ # expression: "size(request.user) > 0"
+ class Expr
include Google::Apis::Core::Hashable
- # A list of API backend rules that apply to individual API methods.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::BackendRule>]
- attr_accessor :rules
+ # An optional description of the expression. This is a longer text which
+ # describes the expression, e.g. when hovered over it in a UI.
+ # Corresponds to the JSON property `description`
+ # @return [String]
+ attr_accessor :description
- def initialize(**args)
- update!(**args)
- end
+ # Textual representation of an expression in
+ # Common Expression Language syntax.
+ # The application context of the containing message determines which
+ # well-known feature set of CEL is supported.
+ # Corresponds to the JSON property `expression`
+ # @return [String]
+ attr_accessor :expression
- # Update properties of this object
- def update!(**args)
- @rules = args[:rules] if args.key?(:rules)
- end
- end
+ # An optional string indicating the location of the expression for error
+ # reporting, e.g. a file name and a position in the file.
+ # Corresponds to the JSON property `location`
+ # @return [String]
+ attr_accessor :location
- # 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
- # AuditConfig are exempted.
- # Example Policy with multiple AuditConfigs:
- # `
- # "audit_configs": [
- # `
- # "service": "allServices"
- # "audit_log_configs": [
- # `
- # "log_type": "DATA_READ",
- # "exempted_members": [
- # "user:foo@gmail.com"
- # ]
- # `,
- # `
- # "log_type": "DATA_WRITE",
- # `,
- # `
- # "log_type": "ADMIN_READ",
- # `
- # ]
- # `,
- # `
- # "service": "fooservice.googleapis.com"
- # "audit_log_configs": [
- # `
- # "log_type": "DATA_READ",
- # `,
- # `
- # "log_type": "DATA_WRITE",
- # "exempted_members": [
- # "user:bar@gmail.com"
- # ]
- # `
- # ]
- # `
- # ]
- # `
- # For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
- # logging. It also exempts foo@gmail.com from DATA_READ logging, and
- # bar@gmail.com from DATA_WRITE logging.
- class AuditConfig
- include Google::Apis::Core::Hashable
-
- #
- # Corresponds to the JSON property `exemptedMembers`
- # @return [Array<String>]
- attr_accessor :exempted_members
-
- # 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.
- # Corresponds to the JSON property `service`
+ # An 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.
+ # Corresponds to the JSON property `title`
# @return [String]
- attr_accessor :service
+ attr_accessor :title
- # The configuration for logging of each type of permission.
- # Next ID: 4
- # Corresponds to the JSON property `auditLogConfigs`
- # @return [Array<Google::Apis::ServicemanagementV1::AuditLogConfig>]
- attr_accessor :audit_log_configs
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
- @service = args[:service] if args.key?(:service)
- @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
+ @description = args[:description] if args.key?(:description)
+ @expression = args[:expression] if args.key?(:expression)
+ @location = args[:location] if args.key?(:location)
+ @title = args[:title] if args.key?(:title)
end
end
- # Request message for SubmitConfigSource method.
- class SubmitConfigSourceRequest
+ # A single field of a message type.
+ class Field
include Google::Apis::Core::Hashable
- # Represents a source file which is used to generate the service configuration
- # defined by `google.api.Service`.
- # Corresponds to the JSON property `configSource`
- # @return [Google::Apis::ServicemanagementV1::ConfigSource]
- attr_accessor :config_source
+ # The field cardinality.
+ # Corresponds to the JSON property `cardinality`
+ # @return [String]
+ attr_accessor :cardinality
- # 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.
- # Corresponds to the JSON property `validateOnly`
- # @return [Boolean]
- attr_accessor :validate_only
- alias_method :validate_only?, :validate_only
+ # The string value of the default value of this field. Proto2 syntax only.
+ # Corresponds to the JSON property `defaultValue`
+ # @return [String]
+ attr_accessor :default_value
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @config_source = args[:config_source] if args.key?(:config_source)
- @validate_only = args[:validate_only] if args.key?(:validate_only)
- end
- end
-
- # A documentation rule provides information about individual API elements.
- class DocumentationRule
- include Google::Apis::Core::Hashable
-
- # Deprecation description of the selected element(s). It can be provided if an
- # element is marked as `deprecated`.
- # Corresponds to the JSON property `deprecationDescription`
+ # The field JSON name.
+ # Corresponds to the JSON property `jsonName`
# @return [String]
- attr_accessor :deprecation_description
+ attr_accessor :json_name
- # The selector is a comma-separated list of patterns. 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". To
- # specify a default for all applicable elements, the whole pattern "*"
- # is used.
- # Corresponds to the JSON property `selector`
+ # The field type.
+ # Corresponds to the JSON property `kind`
# @return [String]
- attr_accessor :selector
+ attr_accessor :kind
- # Description of the selected API(s).
- # Corresponds to the JSON property `description`
+ # The field name.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :description
+ attr_accessor :name
- def initialize(**args)
- update!(**args)
- end
+ # The field number.
+ # Corresponds to the JSON property `number`
+ # @return [Fixnum]
+ attr_accessor :number
- # Update properties of this object
- def update!(**args)
- @deprecation_description = args[:deprecation_description] if args.key?(:deprecation_description)
- @selector = args[:selector] if args.key?(:selector)
- @description = args[:description] if args.key?(:description)
- end
- end
+ # 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.
+ # Corresponds to the JSON property `oneofIndex`
+ # @return [Fixnum]
+ attr_accessor :oneof_index
- # Configuration of authorization.
- # This section determines the authorization provider, if unspecified, then no
- # authorization check will be done.
- # Example:
- # experimental:
- # authorization:
- # provider: firebaserules.googleapis.com
- class AuthorizationConfig
- include Google::Apis::Core::Hashable
+ # The protocol buffer options.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
- # The name of the authorization provider, such as
- # firebaserules.googleapis.com.
- # Corresponds to the JSON property `provider`
+ # Whether to use alternative packed wire representation.
+ # Corresponds to the JSON property `packed`
+ # @return [Boolean]
+ attr_accessor :packed
+ alias_method :packed?, :packed
+
+ # The field type URL, without the scheme, for message or enumeration
+ # types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+ # Corresponds to the JSON property `typeUrl`
# @return [String]
- attr_accessor :provider
+ attr_accessor :type_url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @provider = args[:provider] if args.key?(:provider)
+ @cardinality = args[:cardinality] if args.key?(:cardinality)
+ @default_value = args[:default_value] if args.key?(:default_value)
+ @json_name = args[:json_name] if args.key?(:json_name)
+ @kind = args[:kind] if args.key?(:kind)
+ @name = args[:name] if args.key?(:name)
+ @number = args[:number] if args.key?(:number)
+ @oneof_index = args[:oneof_index] if args.key?(:oneof_index)
+ @options = args[:options] if args.key?(:options)
+ @packed = args[:packed] if args.key?(:packed)
+ @type_url = args[:type_url] if args.key?(:type_url)
end
end
- # Write a Cloud Audit log
- class CloudAuditOptions
+ # The metadata associated with a long running operation resource.
+ class FlowOperationMetadata
include Google::Apis::Core::Hashable
- # The log_name to populate in the Cloud Audit Record.
- # Corresponds to the JSON property `logName`
+ # The state of the operation with respect to cancellation.
+ # Corresponds to the JSON property `cancelState`
# @return [String]
- attr_accessor :log_name
+ attr_accessor :cancel_state
- # True if the log is for a permission of type DATA_READ or ADMIN_READ.
- # Corresponds to the JSON property `isReadPermissionType`
- # @return [Boolean]
- attr_accessor :is_read_permission_type
- alias_method :is_read_permission_type?, :is_read_permission_type
+ # Deadline for the flow to complete, to prevent orphaned Operations.
+ # If the flow has not completed by this time, it may be terminated by
+ # the engine, or force-failed by Operation lookup.
+ # Note that this is not a hard deadline after which the Flow will
+ # definitely be failed, rather it is a deadline after which it is reasonable
+ # to suspect a problem and other parts of the system may kill operation
+ # to ensure we don't have orphans.
+ # see also: go/prevent-orphaned-operations
+ # Corresponds to the JSON property `deadline`
+ # @return [String]
+ attr_accessor :deadline
+ # The name of the top-level flow corresponding to this operation.
+ # Must be equal to the "name" field for a FlowName enum.
+ # Corresponds to the JSON property `flowName`
+ # @return [String]
+ attr_accessor :flow_name
+
+ # The full name of the resources that this flow is directly associated with.
+ # Corresponds to the JSON property `resourceNames`
+ # @return [Array<String>]
+ attr_accessor :resource_names
+
+ # The start time of the operation.
+ # Corresponds to the JSON property `startTime`
+ # @return [String]
+ attr_accessor :start_time
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @log_name = args[:log_name] if args.key?(:log_name)
- @is_read_permission_type = args[:is_read_permission_type] if args.key?(:is_read_permission_type)
+ @cancel_state = args[:cancel_state] if args.key?(:cancel_state)
+ @deadline = args[:deadline] if args.key?(:deadline)
+ @flow_name = args[:flow_name] if args.key?(:flow_name)
+ @resource_names = args[:resource_names] if args.key?(:resource_names)
+ @start_time = args[:start_time] if args.key?(:start_time)
end
end
- # A context rule provides information about the context for an individual API
- # element.
- class ContextRule
+ # Request message for GenerateConfigReport method.
+ class GenerateConfigReportRequest
include Google::Apis::Core::Hashable
- # Selects the methods to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
- # @return [String]
- attr_accessor :selector
+ # 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
+ # Corresponds to the JSON property `newConfig`
+ # @return [Hash<String,Object>]
+ attr_accessor :new_config
- # A list of full type names of provided contexts.
- # Corresponds to the JSON property `provided`
- # @return [Array<String>]
- attr_accessor :provided
+ # 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
+ # Corresponds to the JSON property `oldConfig`
+ # @return [Hash<String,Object>]
+ attr_accessor :old_config
- # A list of full type names of requested contexts.
- # Corresponds to the JSON property `requested`
- # @return [Array<String>]
- attr_accessor :requested
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @selector = args[:selector] if args.key?(:selector)
- @provided = args[:provided] if args.key?(:provided)
- @requested = args[:requested] if args.key?(:requested)
+ @new_config = args[:new_config] if args.key?(:new_config)
+ @old_config = args[:old_config] if args.key?(:old_config)
end
end
- # 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.
- class MetricDescriptor
+ # Response message for GenerateConfigReport method.
+ class GenerateConfigReportResponse
include Google::Apis::Core::Hashable
- # The unit in which the metric value is reported. It is only applicable
- # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
- # supported units are a subset of [The Unified Code for Units of
- # Measure](http://unitsofmeasure.org/ucum.html) standard:
- # **Basic units (UNIT)**
- # * `bit` bit
- # * `By` byte
- # * `s` second
- # * `min` minute
- # * `h` hour
- # * `d` day
- # **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)
- # **Grammar**
- # The grammar includes the dimensionless unit `1`, such as `1/s`.
- # The grammar also includes these connectors:
- # * `/` division (as an infix operator, e.g. `1/s`).
- # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
- # 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` and is
- # equivalent to `1` if it is used alone. For examples,
- # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`.
- # * `NAME` is a sequence of non-blank printable ASCII characters not
- # containing '`' or '`'.
- # Corresponds to the JSON property `unit`
- # @return [String]
- attr_accessor :unit
+ # list of ChangeReport, each corresponding to comparison between two
+ # service configurations.
+ # Corresponds to the JSON property `changeReports`
+ # @return [Array<Google::Apis::ServicemanagementV1::ChangeReport>]
+ attr_accessor :change_reports
- # 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.
- # Corresponds to the JSON property `labels`
- # @return [Array<Google::Apis::ServicemanagementV1::LabelDescriptor>]
- attr_accessor :labels
+ # Errors / Linter warnings associated with the service definition this
+ # report
+ # belongs to.
+ # Corresponds to the JSON property `diagnostics`
+ # @return [Array<Google::Apis::ServicemanagementV1::Diagnostic>]
+ attr_accessor :diagnostics
- # The resource name of the metric descriptor. Depending on the
- # implementation, the name typically includes: (1) the parent resource name
- # that defines the scope of the metric type or of its data; and (2) the
- # metric's URL-encoded type, which also appears in the `type` field of this
- # descriptor. For example, following is the resource name of a custom
- # metric within the GCP project `my-project-id`:
- # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%
- # 2Fpaid%2Famount"
- # Corresponds to the JSON property `name`
+ # ID of the service configuration this report belongs to.
+ # Corresponds to the JSON property `id`
# @return [String]
- attr_accessor :name
+ attr_accessor :id
- # The metric type, including its DNS name prefix. The type is not
- # URL-encoded. All user-defined custom metric types have the DNS name
- # `custom.googleapis.com`. Metric types should use a natural hierarchical
- # grouping. For example:
- # "custom.googleapis.com/invoice/paid/amount"
- # "appengine.googleapis.com/http/server/response_latencies"
- # Corresponds to the JSON property `type`
+ # Name of the service this report belongs to.
+ # Corresponds to the JSON property `serviceName`
# @return [String]
- attr_accessor :type
+ attr_accessor :service_name
- # Whether the measurement is an integer, a floating-point number, etc.
- # Some combinations of `metric_kind` and `value_type` might not be supported.
- # Corresponds to the JSON property `valueType`
- # @return [String]
- attr_accessor :value_type
-
- # Whether the metric records instantaneous values, changes to a value, etc.
- # Some combinations of `metric_kind` and `value_type` might not be supported.
- # Corresponds to the JSON property `metricKind`
- # @return [String]
- attr_accessor :metric_kind
-
- # A detailed description of the metric, which can be used in documentation.
- # Corresponds to the JSON property `description`
- # @return [String]
- attr_accessor :description
-
- # A concise name for the metric, which can be displayed in user interfaces.
- # Use sentence case without an ending period, for example "Request count".
- # Corresponds to the JSON property `displayName`
- # @return [String]
- attr_accessor :display_name
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @unit = args[:unit] if args.key?(:unit)
- @labels = args[:labels] if args.key?(:labels)
- @name = args[:name] if args.key?(:name)
- @type = args[:type] if args.key?(:type)
- @value_type = args[:value_type] if args.key?(:value_type)
- @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
- @description = args[:description] if args.key?(:description)
- @display_name = args[:display_name] if args.key?(:display_name)
+ @change_reports = args[:change_reports] if args.key?(:change_reports)
+ @diagnostics = args[:diagnostics] if args.key?(:diagnostics)
+ @id = args[:id] if args.key?(:id)
+ @service_name = args[:service_name] if args.key?(:service_name)
end
end
- # `SourceContext` represents information about the source of a
- # protobuf element, like the file in which it is defined.
- class SourceContext
+ # Request message for `GetIamPolicy` method.
+ class GetIamPolicyRequest
include Google::Apis::Core::Hashable
- # The path-qualified name of the .proto file that contained the associated
- # protobuf element. For example: `"google/protobuf/source_context.proto"`.
- # Corresponds to the JSON property `fileName`
- # @return [String]
- attr_accessor :file_name
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @file_name = args[:file_name] if args.key?(:file_name)
end
end
- # Represents an expression text. Example:
- # title: "User account presence"
- # description: "Determines whether the request has a user account"
- # expression: "size(request.user) > 0"
- class Expr
+ # 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.
+ class Http
include Google::Apis::Core::Hashable
- # An optional description of the expression. This is a longer text which
- # describes the expression, e.g. when hovered over it in a UI.
- # Corresponds to the JSON property `description`
- # @return [String]
- attr_accessor :description
+ # When set to true, URL path parmeters 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.
+ # Corresponds to the JSON property `fullyDecodeReservedExpansion`
+ # @return [Boolean]
+ attr_accessor :fully_decode_reserved_expansion
+ alias_method :fully_decode_reserved_expansion?, :fully_decode_reserved_expansion
- # Textual representation of an expression in
- # Common Expression Language syntax.
- # The application context of the containing message determines which
- # well-known feature set of CEL is supported.
- # Corresponds to the JSON property `expression`
- # @return [String]
- attr_accessor :expression
+ # A list of HTTP configuration rules that apply to individual API methods.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::HttpRule>]
+ attr_accessor :rules
- # An optional string indicating the location of the expression for error
- # reporting, e.g. a file name and a position in the file.
- # Corresponds to the JSON property `location`
- # @return [String]
- attr_accessor :location
-
- # An 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.
- # Corresponds to the JSON property `title`
- # @return [String]
- attr_accessor :title
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @description = args[:description] if args.key?(:description)
- @expression = args[:expression] if args.key?(:expression)
- @location = args[:location] if args.key?(:location)
- @title = args[:title] if args.key?(:title)
+ @fully_decode_reserved_expansion = args[:fully_decode_reserved_expansion] if args.key?(:fully_decode_reserved_expansion)
+ @rules = args[:rules] if args.key?(:rules)
end
end
- # Response message for `ListServices` method.
- class ListServicesResponse
+ # `HttpRule` defines the mapping of an RPC method to one or more HTTP
+ # REST API methods. The mapping specifies how different portions of the RPC
+ # request message are mapped to URL path, URL query parameters, and
+ # HTTP request body. The mapping is typically specified as an
+ # `google.api.http` annotation on the RPC method,
+ # see "google/api/annotations.proto" for details.
+ # The mapping consists of a field specifying the path template and
+ # method kind. The path template can refer to fields in the request
+ # message, as in the example below which describes a REST GET
+ # operation on a resource collection of messages:
+ # service Messaging `
+ # rpc GetMessage(GetMessageRequest) returns (Message) `
+ # option (google.api.http).get = "/v1/messages/`message_id`/`sub.
+ # subfield`";
+ # `
+ # `
+ # message GetMessageRequest `
+ # message SubMessage `
+ # string subfield = 1;
+ # `
+ # string message_id = 1; // mapped to the URL
+ # SubMessage sub = 2; // `sub.subfield` is url-mapped
+ # `
+ # message Message `
+ # string text = 1; // content of the resource
+ # `
+ # The same http annotation can alternatively be expressed inside the
+ # `GRPC API Configuration` YAML file.
+ # http:
+ # rules:
+ # - selector: <proto_package_name>.Messaging.GetMessage
+ # get: /v1/messages/`message_id`/`sub.subfield`
+ # This definition enables an automatic, bidrectional mapping of HTTP
+ # JSON to RPC. Example:
+ # HTTP | RPC
+ # -----|-----
+ # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub:
+ # SubMessage(subfield: "foo"))`
+ # In general, not only fields but also field paths can be referenced
+ # from a path pattern. Fields mapped to the path pattern cannot be
+ # repeated and must have a primitive (non-message) type.
+ # Any fields in the request message which are not bound by the path
+ # pattern automatically become (optional) HTTP query
+ # parameters. Assume the following definition of the request message:
+ # 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 the URL
+ # int64 revision = 2; // becomes a parameter
+ # SubMessage sub = 3; // `sub.subfield` becomes a parameter
+ # `
+ # This enables a HTTP JSON to RPC mapping as below:
+ # HTTP | RPC
+ # -----|-----
+ # `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 HTTP parameters must have a
+ # primitive type or a repeated primitive type. Message types are not
+ # allowed. In the case of a repeated type, the parameter can be
+ # repeated in the URL, as in `...?param=A¶m=B`.
+ # For HTTP method kinds which 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) = `
+ # put: "/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 | RPC
+ # -----|-----
+ # `PUT /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) = `
+ # put: "/v1/messages/`message_id`"
+ # body: "*"
+ # `;
+ # `
+ # `
+ # message Message `
+ # string message_id = 1;
+ # string text = 2;
+ # `
+ # The following HTTP JSON to RPC mapping is enabled:
+ # HTTP | RPC
+ # -----|-----
+ # `PUT /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 of
+ # 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 | RPC
+ # -----|-----
+ # `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
+ # The rules for mapping HTTP path, query parameters, and body fields
+ # to the request message are as follows:
+ # 1. The `body` field specifies either `*` or a field path, or is
+ # omitted. If omitted, it indicates there is no HTTP request body.
+ # 2. Leaf fields (recursive expansion of nested messages in the
+ # request) can be classified into three types:
+ # (a) Matched in the URL template.
+ # (b) Covered by body (if body is `*`, everything except (a) fields;
+ # else everything under the body field)
+ # (c) All other fields.
+ # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
+ # 4. Any body sent with an HTTP request can contain only (b) fields.
+ # The syntax of the path template is as follows:
+ # Template = "/" Segments [ Verb ] ;
+ # Segments = Segment ` "/" Segment ` ;
+ # Segment = "*" | "**" | LITERAL | Variable ;
+ # Variable = "`" FieldPath [ "=" Segments ] "`" ;
+ # FieldPath = IDENT ` "." IDENT ` ;
+ # Verb = ":" LITERAL ;
+ # The syntax `*` matches a single path segment. The syntax `**` matches zero
+ # or more path segments, which must be the last part of the path except the
+ # `Verb`. The syntax `LITERAL` matches literal text in the path.
+ # 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=*``.
+ # If a variable contains exactly one path segment, such as `"`var`"` or
+ # `"`var=*`"`, when such a variable is expanded into a URL path, all characters
+ # except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
+ # Discovery Document as ``var``.
+ # If a variable contains one or more path segments, such as `"`var=foo/*`"`
+ # or `"`var=**`"`, when such a variable is expanded into a URL path, all
+ # characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
+ # show up in the Discovery Document as ``+var``.
+ # NOTE: While the single segment variable matches the semantics of
+ # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
+ # Simple String Expansion, the multi segment variable **does not** match
+ # RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
+ # does not expand special characters like `?` and `#`, which would lead
+ # to invalid URLs.
+ # NOTE: the field paths in variables and in the `body` must not refer to
+ # repeated fields or map fields.
+ class HttpRule
include Google::Apis::Core::Hashable
- # Token that can be passed to `ListServices` to resume a paginated query.
- # Corresponds to the JSON property `nextPageToken`
+ # 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).
+ # Corresponds to the JSON property `additionalBindings`
+ # @return [Array<Google::Apis::ServicemanagementV1::HttpRule>]
+ attr_accessor :additional_bindings
+
+ # The name of the request field whose value is mapped to the HTTP body, or
+ # `*` for mapping all fields not captured by the path pattern to the HTTP
+ # body. NOTE: the referred field must not be a repeated field and must be
+ # present at the top-level of request message type.
+ # Corresponds to the JSON property `body`
# @return [String]
- attr_accessor :next_page_token
+ attr_accessor :body
- # The returned services will only have the name field set.
- # Corresponds to the JSON property `services`
- # @return [Array<Google::Apis::ServicemanagementV1::ManagedService>]
- attr_accessor :services
+ # A custom pattern is used for defining custom HTTP verb.
+ # Corresponds to the JSON property `custom`
+ # @return [Google::Apis::ServicemanagementV1::CustomHttpPattern]
+ attr_accessor :custom
- def initialize(**args)
- update!(**args)
- end
+ # Used for deleting a resource.
+ # Corresponds to the JSON property `delete`
+ # @return [String]
+ attr_accessor :delete
- # Update properties of this object
- def update!(**args)
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
- @services = args[:services] if args.key?(:services)
- end
- end
+ # Used for listing and getting information about resources.
+ # Corresponds to the JSON property `get`
+ # @return [String]
+ attr_accessor :get
- # `Endpoint` describes a network endpoint that serves a set of APIs.
- # A service may expose any number of endpoints, and all endpoints share the
- # same service configuration, such as quota configuration and monitoring
- # configuration.
- # Example service configuration:
- # name: library-example.googleapis.com
- # endpoints:
- # # Below entry makes 'google.example.library.v1.Library'
- # # API be served from endpoint address library-example.googleapis.com.
- # # It also allows HTTP OPTIONS calls to be passed to the backend, for
- # # it to decide whether the subsequent cross-origin request is
- # # allowed to proceed.
- # - name: library-example.googleapis.com
- # allow_cors: true
- class Endpoint
- include Google::Apis::Core::Hashable
+ # Defines the Media configuration for a service in case of a download.
+ # Use this only for Scotty Requests. Do not use this for media support using
+ # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+ # your configuration for Bytestream methods.
+ # Corresponds to the JSON property `mediaDownload`
+ # @return [Google::Apis::ServicemanagementV1::MediaDownload]
+ attr_accessor :media_download
- # The list of features enabled on this endpoint.
- # Corresponds to the JSON property `features`
- # @return [Array<String>]
- attr_accessor :features
+ # Defines the Media configuration for a service in case of an upload.
+ # Use this only for Scotty Requests. Do not use this for media support using
+ # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
+ # your configuration for Bytestream methods.
+ # Corresponds to the JSON property `mediaUpload`
+ # @return [Google::Apis::ServicemanagementV1::MediaUpload]
+ attr_accessor :media_upload
- # The list of APIs served by this endpoint.
- # If no APIs are specified this translates to "all APIs" exported by the
- # service, as defined in the top-level service configuration.
- # Corresponds to the JSON property `apis`
- # @return [Array<String>]
- attr_accessor :apis
+ # Used for updating a resource.
+ # Corresponds to the JSON property `patch`
+ # @return [String]
+ attr_accessor :patch
- # DEPRECATED: This field is no longer supported. Instead of using aliases,
- # please specify multiple google.api.Endpoint for each of the intented
- # alias.
- # Additional names that this endpoint will be hosted on.
- # Corresponds to the JSON property `aliases`
- # @return [Array<String>]
- attr_accessor :aliases
+ # Used for creating a resource.
+ # Corresponds to the JSON property `post`
+ # @return [String]
+ attr_accessor :post
- # 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.
- # Corresponds to the JSON property `allowCors`
- # @return [Boolean]
- attr_accessor :allow_cors
- alias_method :allow_cors?, :allow_cors
+ # Used for updating a resource.
+ # Corresponds to the JSON property `put`
+ # @return [String]
+ attr_accessor :put
- # The canonical name of this endpoint.
- # Corresponds to the JSON property `name`
+ # The name of the response field whose value is mapped to the HTTP body of
+ # response. Other response fields are ignored. This field is optional. When
+ # not set, the response message will be used as HTTP body of response.
+ # NOTE: the referred field must be not a repeated field and must be present
+ # at the top-level of response message type.
+ # Corresponds to the JSON property `responseBody`
# @return [String]
- attr_accessor :name
+ attr_accessor :response_body
- # 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".
- # Corresponds to the JSON property `target`
+ # Selects methods to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
# @return [String]
- attr_accessor :target
+ attr_accessor :selector
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @features = args[:features] if args.key?(:features)
- @apis = args[:apis] if args.key?(:apis)
- @aliases = args[:aliases] if args.key?(:aliases)
- @allow_cors = args[:allow_cors] if args.key?(:allow_cors)
- @name = args[:name] if args.key?(:name)
- @target = args[:target] if args.key?(:target)
+ @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings)
+ @body = args[:body] if args.key?(:body)
+ @custom = args[:custom] if args.key?(:custom)
+ @delete = args[:delete] if args.key?(:delete)
+ @get = args[:get] if args.key?(:get)
+ @media_download = args[:media_download] if args.key?(:media_download)
+ @media_upload = args[:media_upload] if args.key?(:media_upload)
+ @patch = args[:patch] if args.key?(:patch)
+ @post = args[:post] if args.key?(:post)
+ @put = args[:put] if args.key?(:put)
+ @response_body = args[:response_body] if args.key?(:response_body)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # 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.
- class OAuthRequirements
+ # A description of a label.
+ class LabelDescriptor
include Google::Apis::Core::Hashable
- # 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
- # Corresponds to the JSON property `canonicalScopes`
+ # A human-readable description for the label.
+ # Corresponds to the JSON property `description`
# @return [String]
- attr_accessor :canonical_scopes
+ attr_accessor :description
+ # The label key.
+ # Corresponds to the JSON property `key`
+ # @return [String]
+ attr_accessor :key
+
+ # The type of data that can be assigned to the label.
+ # Corresponds to the JSON property `valueType`
+ # @return [String]
+ attr_accessor :value_type
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes)
+ @description = args[:description] if args.key?(:description)
+ @key = args[:key] if args.key?(:key)
+ @value_type = args[:value_type] if args.key?(:value_type)
end
end
- # Configuration controlling usage of a service.
- class Usage
+ # The response message for Operations.ListOperations.
+ class ListOperationsResponse
include Google::Apis::Core::Hashable
- # Requirements that must be satisfied before a consumer project can use the
- # service. Each requirement is of the form <service.name>/<requirement-id>;
- # for example 'serviceusage.googleapis.com/billing-enabled'.
- # Corresponds to the JSON property `requirements`
- # @return [Array<String>]
- attr_accessor :requirements
-
- # 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.
- # Corresponds to the JSON property `producerNotificationChannel`
+ # The standard List next-page token.
+ # Corresponds to the JSON property `nextPageToken`
# @return [String]
- attr_accessor :producer_notification_channel
+ attr_accessor :next_page_token
- # A list of usage rules that apply to individual API methods.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::UsageRule>]
- attr_accessor :rules
+ # A list of operations that matches the specified filter in the request.
+ # Corresponds to the JSON property `operations`
+ # @return [Array<Google::Apis::ServicemanagementV1::Operation>]
+ attr_accessor :operations
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @requirements = args[:requirements] if args.key?(:requirements)
- @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel)
- @rules = args[:rules] if args.key?(:rules)
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @operations = args[:operations] if args.key?(:operations)
end
end
- # Request message for `GetIamPolicy` method.
- class GetIamPolicyRequest
+ # Response message for ListServiceConfigs method.
+ class ListServiceConfigsResponse
include Google::Apis::Core::Hashable
- def initialize(**args)
- update!(**args)
- end
+ # The token of the next page of results.
+ # Corresponds to the JSON property `nextPageToken`
+ # @return [String]
+ attr_accessor :next_page_token
- # Update properties of this object
- def update!(**args)
- end
- end
+ # The list of service configuration resources.
+ # Corresponds to the JSON property `serviceConfigs`
+ # @return [Array<Google::Apis::ServicemanagementV1::Service>]
+ attr_accessor :service_configs
- # Response message for `TestIamPermissions` method.
- class TestIamPermissionsResponse
- include Google::Apis::Core::Hashable
-
- # A subset of `TestPermissionsRequest.permissions` that the caller is
- # allowed.
- # Corresponds to the JSON property `permissions`
- # @return [Array<String>]
- attr_accessor :permissions
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @permissions = args[:permissions] if args.key?(:permissions)
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @service_configs = args[:service_configs] if args.key?(:service_configs)
end
end
- # `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`.
- class Context
+ # Response message for ListServiceRollouts method.
+ class ListServiceRolloutsResponse
include Google::Apis::Core::Hashable
- # A list of RPC context rules that apply to individual API methods.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::ContextRule>]
- attr_accessor :rules
+ # The token of the next page of results.
+ # Corresponds to the JSON property `nextPageToken`
+ # @return [String]
+ attr_accessor :next_page_token
+ # The list of rollout resources.
+ # Corresponds to the JSON property `rollouts`
+ # @return [Array<Google::Apis::ServicemanagementV1::Rollout>]
+ attr_accessor :rollouts
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @rules = args[:rules] if args.key?(:rules)
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @rollouts = args[:rollouts] if args.key?(:rollouts)
end
end
- # A rule to be applied in a Policy.
- class Rule
+ # Response message for `ListServices` method.
+ class ListServicesResponse
include Google::Apis::Core::Hashable
- # If one or more 'not_in' clauses are specified, the rule matches
- # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
- # The format for in and not_in entries is the same as for members in a
- # Binding (see google/iam/v1/policy.proto).
- # Corresponds to the JSON property `notIn`
- # @return [Array<String>]
- attr_accessor :not_in
-
- # Human-readable description of the rule.
- # Corresponds to the JSON property `description`
+ # Token that can be passed to `ListServices` to resume a paginated query.
+ # Corresponds to the JSON property `nextPageToken`
# @return [String]
- attr_accessor :description
+ attr_accessor :next_page_token
- # Additional restrictions that must be met
- # Corresponds to the JSON property `conditions`
- # @return [Array<Google::Apis::ServicemanagementV1::Condition>]
- attr_accessor :conditions
+ # The returned services will only have the name field set.
+ # Corresponds to the JSON property `services`
+ # @return [Array<Google::Apis::ServicemanagementV1::ManagedService>]
+ attr_accessor :services
- # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
- # that match the LOG action.
- # Corresponds to the JSON property `logConfig`
- # @return [Array<Google::Apis::ServicemanagementV1::LogConfig>]
- attr_accessor :log_config
-
- # If one or more 'in' clauses are specified, the rule matches if
- # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
- # Corresponds to the JSON property `in`
- # @return [Array<String>]
- attr_accessor :in
-
- # A permission is a string of form '<service>.<resource type>.<verb>'
- # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
- # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
- # Corresponds to the JSON property `permissions`
- # @return [Array<String>]
- attr_accessor :permissions
-
- # Required
- # Corresponds to the JSON property `action`
- # @return [String]
- attr_accessor :action
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @not_in = args[:not_in] if args.key?(:not_in)
- @description = args[:description] if args.key?(:description)
- @conditions = args[:conditions] if args.key?(:conditions)
- @log_config = args[:log_config] if args.key?(:log_config)
- @in = args[:in] if args.key?(:in)
- @permissions = args[:permissions] if args.key?(:permissions)
- @action = args[:action] if args.key?(:action)
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @services = args[:services] if args.key?(:services)
end
end
# Specifies what kind of log the caller must write
- # Increment a streamz counter with the specified metric and field names.
- # Metric names should start with a '/', generally be lowercase-only,
- # and end in "_count". Field names should not contain an initial slash.
- # The actual exported metric names will have "/iam/policy" prepended.
- # Field names correspond to IAM request parameters and field values are
- # their respective values.
- # At present the only supported field names are
- # - "iam_principal", corresponding to IAMContext.principal;
- # - "" (empty string), resulting in one aggretated counter with no field.
- # Examples:
- # counter ` metric: "/debug_access_count" field: "iam_principal" `
- # ==> increment counter /iam/policy/backend_debug_access_count
- # `iam_principal=[value of IAMContext.principal]`
- # At this time we do not support:
- # * multiple field names (though this may be supported in the future)
- # * decrementing the counter
- # * incrementing it by anything other than 1
class LogConfig
include Google::Apis::Core::Hashable
- # Options for counters
+ # Write a Cloud Audit log
+ # Corresponds to the JSON property `cloudAudit`
+ # @return [Google::Apis::ServicemanagementV1::CloudAuditOptions]
+ attr_accessor :cloud_audit
+
+ # Increment a streamz counter with the specified metric and field names.
+ # Metric names should start with a '/', generally be lowercase-only,
+ # and end in "_count". Field names should not contain an initial slash.
+ # The actual exported metric names will have "/iam/policy" prepended.
+ # Field names correspond to IAM request parameters and field values are
+ # their respective values.
+ # At present the only supported field names are
+ # - "iam_principal", corresponding to IAMContext.principal;
+ # - "" (empty string), resulting in one aggretated counter with no field.
+ # Examples:
+ # counter ` metric: "/debug_access_count" field: "iam_principal" `
+ # ==> increment counter /iam/policy/backend_debug_access_count
+ # `iam_principal=[value of IAMContext.principal]`
+ # At this time we do not support:
+ # * multiple field names (though this may be supported in the future)
+ # * decrementing the counter
+ # * incrementing it by anything other than 1
# Corresponds to the JSON property `counter`
# @return [Google::Apis::ServicemanagementV1::CounterOptions]
attr_accessor :counter
# Write a Data Access (Gin) log
# Corresponds to the JSON property `dataAccess`
# @return [Google::Apis::ServicemanagementV1::DataAccessOptions]
attr_accessor :data_access
- # Write a Cloud Audit log
- # Corresponds to the JSON property `cloudAudit`
- # @return [Google::Apis::ServicemanagementV1::CloudAuditOptions]
- attr_accessor :cloud_audit
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
+ @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
@counter = args[:counter] if args.key?(:counter)
@data_access = args[:data_access] if args.key?(:data_access)
- @cloud_audit = args[:cloud_audit] if args.key?(:cloud_audit)
end
end
# A description of a log type. Example in YAML format:
# - name: library.googleapis.com/activity_history
@@ -2308,10 +2270,22 @@
# - key: /customer_id
# description: Identifier of a library customer
class LogDescriptor
include Google::Apis::Core::Hashable
+ # A human-readable description of this log. This information appears in
+ # the documentation and can contain details.
+ # Corresponds to the JSON property `description`
+ # @return [String]
+ attr_accessor :description
+
+ # The human-readable name for this log. This information appears on
+ # the user interface and should be concise.
+ # Corresponds to the JSON property `displayName`
+ # @return [String]
+ attr_accessor :display_name
+
# The set of labels that are available to describe a specific log entry.
# Runtime requests that contain labels not specified here are
# considered invalid.
# Corresponds to the JSON property `labels`
# @return [Array<Google::Apis::ServicemanagementV1::LabelDescriptor>]
@@ -2323,210 +2297,168 @@
# slash, underscore, hyphen, period [/_-.].
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
- # The human-readable name for this log. This information appears on
- # the user interface and should be concise.
- # Corresponds to the JSON property `displayName`
- # @return [String]
- attr_accessor :display_name
-
- # A human-readable description of this log. This information appears in
- # the documentation and can contain details.
- # Corresponds to the JSON property `description`
- # @return [String]
- attr_accessor :description
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
+ @description = args[:description] if args.key?(:description)
+ @display_name = args[:display_name] if args.key?(:display_name)
@labels = args[:labels] if args.key?(:labels)
@name = args[:name] if args.key?(:name)
- @display_name = args[:display_name] if args.key?(:display_name)
- @description = args[:description] if args.key?(:description)
end
end
- # Generic specification of a source configuration file
- class ConfigFile
+ # 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
+ class Logging
include Google::Apis::Core::Hashable
- # The type of configuration file this represents.
- # Corresponds to the JSON property `fileType`
- # @return [String]
- attr_accessor :file_type
+ # 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.
+ # Corresponds to the JSON property `consumerDestinations`
+ # @return [Array<Google::Apis::ServicemanagementV1::LoggingDestination>]
+ attr_accessor :consumer_destinations
- # The bytes that constitute the file.
- # Corresponds to the JSON property `fileContents`
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
- # @return [String]
- attr_accessor :file_contents
+ # 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.
+ # Corresponds to the JSON property `producerDestinations`
+ # @return [Array<Google::Apis::ServicemanagementV1::LoggingDestination>]
+ attr_accessor :producer_destinations
- # The file name of the configuration file (full or relative path).
- # Corresponds to the JSON property `filePath`
- # @return [String]
- attr_accessor :file_path
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @file_type = args[:file_type] if args.key?(:file_type)
- @file_contents = args[:file_contents] if args.key?(:file_contents)
- @file_path = args[:file_path] if args.key?(:file_path)
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
end
end
- # A custom error rule.
- class CustomErrorRule
+ # Configuration of a specific logging destination (the producer project
+ # or the consumer project).
+ class LoggingDestination
include Google::Apis::Core::Hashable
- # Mark this message as possible payload in error response. Otherwise,
- # objects of this type will be filtered when they appear in error payload.
- # Corresponds to the JSON property `isErrorType`
- # @return [Boolean]
- attr_accessor :is_error_type
- alias_method :is_error_type?, :is_error_type
+ # 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 "/".
+ # Corresponds to the JSON property `logs`
+ # @return [Array<String>]
+ attr_accessor :logs
- # Selects messages to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
+ # The monitored resource type. The type must be defined in the
+ # Service.monitored_resources section.
+ # Corresponds to the JSON property `monitoredResource`
# @return [String]
- attr_accessor :selector
+ attr_accessor :monitored_resource
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @is_error_type = args[:is_error_type] if args.key?(:is_error_type)
- @selector = args[:selector] if args.key?(:selector)
+ @logs = args[:logs] if args.key?(:logs)
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
end
end
- # 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.
- class MonitoredResourceDescriptor
+ # The full representation of a Service that is managed by
+ # Google Service Management.
+ class ManagedService
include Google::Apis::Core::Hashable
- # 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"`.
- # Corresponds to the JSON property `labels`
- # @return [Array<Google::Apis::ServicemanagementV1::LabelDescriptor>]
- attr_accessor :labels
-
- # 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`"`.
- # Corresponds to the JSON property `name`
+ # ID of the project that produces and owns this service.
+ # Corresponds to the JSON property `producerProjectId`
# @return [String]
- attr_accessor :name
+ attr_accessor :producer_project_id
- # Optional. A detailed description of the monitored resource type that might
- # be used in documentation.
- # Corresponds to the JSON property `description`
+ # The name of the service. See the [overview](/service-management/overview)
+ # for naming requirements.
+ # Corresponds to the JSON property `serviceName`
# @return [String]
- attr_accessor :description
+ attr_accessor :service_name
- # 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"`.
- # Corresponds to the JSON property `displayName`
- # @return [String]
- attr_accessor :display_name
-
- # Required. The monitored resource type. For example, the type
- # `"cloudsql_database"` represents databases in Google Cloud SQL.
- # The maximum length of this value is 256 characters.
- # Corresponds to the JSON property `type`
- # @return [String]
- attr_accessor :type
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @labels = args[:labels] if args.key?(:labels)
- @name = args[:name] if args.key?(:name)
- @description = args[:description] if args.key?(:description)
- @display_name = args[:display_name] if args.key?(:display_name)
- @type = args[:type] if args.key?(:type)
+ @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
+ @service_name = args[:service_name] if args.key?(:service_name)
end
end
- # Configuration for a custom authentication provider.
- class CustomAuthRequirements
- include Google::Apis::Core::Hashable
-
- # A configuration string containing connection information for the
- # authentication provider, typically formatted as a SmartService string
- # (go/smartservice).
- # Corresponds to the JSON property `provider`
- # @return [String]
- attr_accessor :provider
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @provider = args[:provider] if args.key?(:provider)
- end
- end
-
# Defines the Media configuration for a service in case of a download.
# Use this only for Scotty Requests. Do not use this for media support using
# Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
# your configuration for Bytestream methods.
class MediaDownload
include Google::Apis::Core::Hashable
- # Whether download is enabled.
- # Corresponds to the JSON property `enabled`
+ # A boolean that determines whether a notification for the completion of a
+ # download should be sent to the backend.
+ # Corresponds to the JSON property `completeNotification`
# @return [Boolean]
- attr_accessor :enabled
- alias_method :enabled?, :enabled
+ attr_accessor :complete_notification
+ alias_method :complete_notification?, :complete_notification
# DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
# Specify name of the download service if one is used for download.
# Corresponds to the JSON property `downloadService`
# @return [String]
attr_accessor :download_service
- # A boolean that determines whether a notification for the completion of a
- # download should be sent to the backend.
- # Corresponds to the JSON property `completeNotification`
- # @return [Boolean]
- attr_accessor :complete_notification
- alias_method :complete_notification?, :complete_notification
-
# Name of the Scotty dropzone to use for the current API.
# Corresponds to the JSON property `dropzone`
# @return [String]
attr_accessor :dropzone
+ # Whether download is enabled.
+ # Corresponds to the JSON property `enabled`
+ # @return [Boolean]
+ attr_accessor :enabled
+ alias_method :enabled?, :enabled
+
# Optional maximum acceptable size for direct download.
# The size is specified in bytes.
# Corresponds to the JSON property `maxDirectDownloadSize`
# @return [Fixnum]
attr_accessor :max_direct_download_size
@@ -2542,990 +2474,603 @@
update!(**args)
end
# Update properties of this object
def update!(**args)
- @enabled = args[:enabled] if args.key?(:enabled)
- @download_service = args[:download_service] if args.key?(:download_service)
@complete_notification = args[:complete_notification] if args.key?(:complete_notification)
+ @download_service = args[:download_service] if args.key?(:download_service)
@dropzone = args[:dropzone] if args.key?(:dropzone)
+ @enabled = args[:enabled] if args.key?(:enabled)
@max_direct_download_size = args[:max_direct_download_size] if args.key?(:max_direct_download_size)
@use_direct_download = args[:use_direct_download] if args.key?(:use_direct_download)
end
end
- # Change report associated with a particular service configuration.
- # It contains a list of ConfigChanges based on the comparison between
- # two service configurations.
- class ChangeReport
- include Google::Apis::Core::Hashable
-
- # 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
- # Corresponds to the JSON property `configChanges`
- # @return [Array<Google::Apis::ServicemanagementV1::ConfigChange>]
- attr_accessor :config_changes
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @config_changes = args[:config_changes] if args.key?(:config_changes)
- end
- end
-
- # Request message for DisableService method.
- class DisableServiceRequest
- include Google::Apis::Core::Hashable
-
- # The identity of consumer resource which service disablement will be
- # applied to.
- # The Google Service Management implementation accepts the following
- # forms:
- # - "project:<project_id>"
- # Note: this is made compatible with
- # google.api.servicecontrol.v1.Operation.consumer_id.
- # Corresponds to the JSON property `consumerId`
- # @return [String]
- attr_accessor :consumer_id
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @consumer_id = args[:consumer_id] if args.key?(:consumer_id)
- end
- end
-
- # Response message for SubmitConfigSource method.
- class SubmitConfigSourceResponse
- include Google::Apis::Core::Hashable
-
- # `Service` is the root object of Google service configuration schema. It
- # describes basic information about a service, such as the name and the
- # 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. See each proto message definition for details.
- # Example:
- # type: google.api.Service
- # config_version: 3
- # name: calendar.googleapis.com
- # title: Google Calendar API
- # apis:
- # - name: google.calendar.v3.Calendar
- # 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
- # Corresponds to the JSON property `serviceConfig`
- # @return [Google::Apis::ServicemanagementV1::Service]
- attr_accessor :service_config
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @service_config = args[:service_config] if args.key?(:service_config)
- end
- end
-
# Defines the Media configuration for a service in case of an upload.
# Use this only for Scotty Requests. Do not use this for media support using
# Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
# your configuration for Bytestream methods.
class MediaUpload
include Google::Apis::Core::Hashable
- # Whether to receive a notification on the start of media upload.
- # Corresponds to the JSON property `startNotification`
+ # A boolean that determines whether a notification for the completion of an
+ # upload should be sent to the backend. These notifications will not be seen
+ # by the client and will not consume quota.
+ # Corresponds to the JSON property `completeNotification`
# @return [Boolean]
- attr_accessor :start_notification
- alias_method :start_notification?, :start_notification
+ attr_accessor :complete_notification
+ alias_method :complete_notification?, :complete_notification
- # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
- # Specify name of the upload service if one is used for upload.
- # Corresponds to the JSON property `uploadService`
+ # Name of the Scotty dropzone to use for the current API.
+ # Corresponds to the JSON property `dropzone`
# @return [String]
- attr_accessor :upload_service
+ attr_accessor :dropzone
- # An array of mimetype patterns. Esf will only accept uploads that match one
- # of the given patterns.
- # Corresponds to the JSON property `mimeTypes`
- # @return [Array<String>]
- attr_accessor :mime_types
+ # Whether upload is enabled.
+ # Corresponds to the JSON property `enabled`
+ # @return [Boolean]
+ attr_accessor :enabled
+ alias_method :enabled?, :enabled
# Optional maximum acceptable size for an upload.
# The size is specified in bytes.
# Corresponds to the JSON property `maxSize`
# @return [Fixnum]
attr_accessor :max_size
- # A boolean that determines whether a notification for the completion of an
- # upload should be sent to the backend. These notifications will not be seen
- # by the client and will not consume quota.
- # Corresponds to the JSON property `completeNotification`
- # @return [Boolean]
- attr_accessor :complete_notification
- alias_method :complete_notification?, :complete_notification
+ # An array of mimetype patterns. Esf will only accept uploads that match one
+ # of the given patterns.
+ # Corresponds to the JSON property `mimeTypes`
+ # @return [Array<String>]
+ attr_accessor :mime_types
# Whether to receive a notification for progress changes of media upload.
# Corresponds to the JSON property `progressNotification`
# @return [Boolean]
attr_accessor :progress_notification
alias_method :progress_notification?, :progress_notification
- # Whether upload is enabled.
- # Corresponds to the JSON property `enabled`
+ # Whether to receive a notification on the start of media upload.
+ # Corresponds to the JSON property `startNotification`
# @return [Boolean]
- attr_accessor :enabled
- alias_method :enabled?, :enabled
+ attr_accessor :start_notification
+ alias_method :start_notification?, :start_notification
- # Name of the Scotty dropzone to use for the current API.
- # Corresponds to the JSON property `dropzone`
+ # DO NOT USE FIELDS BELOW THIS LINE UNTIL THIS WARNING IS REMOVED.
+ # Specify name of the upload service if one is used for upload.
+ # Corresponds to the JSON property `uploadService`
# @return [String]
- attr_accessor :dropzone
+ attr_accessor :upload_service
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @start_notification = args[:start_notification] if args.key?(:start_notification)
- @upload_service = args[:upload_service] if args.key?(:upload_service)
- @mime_types = args[:mime_types] if args.key?(:mime_types)
- @max_size = args[:max_size] if args.key?(:max_size)
@complete_notification = args[:complete_notification] if args.key?(:complete_notification)
- @progress_notification = args[:progress_notification] if args.key?(:progress_notification)
- @enabled = args[:enabled] if args.key?(:enabled)
@dropzone = args[:dropzone] if args.key?(:dropzone)
+ @enabled = args[:enabled] if args.key?(:enabled)
+ @max_size = args[:max_size] if args.key?(:max_size)
+ @mime_types = args[:mime_types] if args.key?(:mime_types)
+ @progress_notification = args[:progress_notification] if args.key?(:progress_notification)
+ @start_notification = args[:start_notification] if args.key?(:start_notification)
+ @upload_service = args[:upload_service] if args.key?(:upload_service)
end
end
- # Generated advice about this change, used for providing more
- # information about how a change will affect the existing service.
- class Advice
+ # Method represents a method of an API interface.
+ class MethodProp
include Google::Apis::Core::Hashable
- # Useful description for why this advice was applied and what actions should
- # be taken to mitigate any implied risks.
- # Corresponds to the JSON property `description`
+ # The simple name of this method.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :description
+ attr_accessor :name
- def initialize(**args)
- update!(**args)
- end
+ # Any metadata attached to the method.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
- # Update properties of this object
- def update!(**args)
- @description = args[:description] if args.key?(:description)
- end
- end
-
- # The full representation of a Service that is managed by
- # Google Service Management.
- class ManagedService
- include Google::Apis::Core::Hashable
-
- # The name of the service. See the [overview](/service-management/overview)
- # for naming requirements.
- # Corresponds to the JSON property `serviceName`
- # @return [String]
- attr_accessor :service_name
-
- # ID of the project that produces and owns this service.
- # Corresponds to the JSON property `producerProjectId`
- # @return [String]
- attr_accessor :producer_project_id
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @service_name = args[:service_name] if args.key?(:service_name)
- @producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
- end
- end
-
- # 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
- class UsageRule
- include Google::Apis::Core::Hashable
-
- # True, if the method allows unregistered calls; false otherwise.
- # Corresponds to the JSON property `allowUnregisteredCalls`
+ # If true, the request is streamed.
+ # Corresponds to the JSON property `requestStreaming`
# @return [Boolean]
- attr_accessor :allow_unregistered_calls
- alias_method :allow_unregistered_calls?, :allow_unregistered_calls
+ attr_accessor :request_streaming
+ alias_method :request_streaming?, :request_streaming
- # Selects the methods to which this rule applies. Use '*' to indicate all
- # methods in all APIs.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
+ # A URL of the input message type.
+ # Corresponds to the JSON property `requestTypeUrl`
# @return [String]
- attr_accessor :selector
+ attr_accessor :request_type_url
- # True, if the method should skip service control. If so, no control plane
- # feature (like quota and billing) will be enabled.
- # Corresponds to the JSON property `skipServiceControl`
+ # If true, the response is streamed.
+ # Corresponds to the JSON property `responseStreaming`
# @return [Boolean]
- attr_accessor :skip_service_control
- alias_method :skip_service_control?, :skip_service_control
+ attr_accessor :response_streaming
+ alias_method :response_streaming?, :response_streaming
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls)
- @selector = args[:selector] if args.key?(:selector)
- @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control)
- end
- end
-
- # 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 precentage 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
- # `
- # `
- # `
- class TrafficPercentStrategy
- include Google::Apis::Core::Hashable
-
- # 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.
- # Corresponds to the JSON property `percentages`
- # @return [Hash<String,Float>]
- attr_accessor :percentages
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @percentages = args[:percentages] if args.key?(:percentages)
- end
- end
-
- # User-defined authentication requirements, including support for
- # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
- # token-32).
- class AuthRequirement
- include Google::Apis::Core::Hashable
-
- # 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.
- # LibraryService".
- # Example:
- # audiences: bookstore_android.apps.googleusercontent.com,
- # bookstore_web.apps.googleusercontent.com
- # Corresponds to the JSON property `audiences`
+ # The URL of the output message type.
+ # Corresponds to the JSON property `responseTypeUrl`
# @return [String]
- attr_accessor :audiences
+ attr_accessor :response_type_url
- # id from authentication provider.
- # Example:
- # provider_id: bookstore_auth
- # Corresponds to the JSON property `providerId`
+ # The source syntax of this method.
+ # Corresponds to the JSON property `syntax`
# @return [String]
- attr_accessor :provider_id
+ attr_accessor :syntax
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @audiences = args[:audiences] if args.key?(:audiences)
- @provider_id = args[:provider_id] if args.key?(:provider_id)
+ @name = args[:name] if args.key?(:name)
+ @options = args[:options] if args.key?(:options)
+ @request_streaming = args[:request_streaming] if args.key?(:request_streaming)
+ @request_type_url = args[:request_type_url] if args.key?(:request_type_url)
+ @response_streaming = args[:response_streaming] if args.key?(:response_streaming)
+ @response_type_url = args[:response_type_url] if args.key?(:response_type_url)
+ @syntax = args[:syntax] if args.key?(:syntax)
end
end
- # A condition to be met.
- class Condition
+ # 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.
+ class MetricDescriptor
include Google::Apis::Core::Hashable
- # DEPRECATED. Use 'values' instead.
- # Corresponds to the JSON property `value`
+ # A detailed description of the metric, which can be used in documentation.
+ # Corresponds to the JSON property `description`
# @return [String]
- attr_accessor :value
+ attr_accessor :description
- # Trusted attributes supplied by any service that owns resources and uses
- # the IAM system for access control.
- # Corresponds to the JSON property `sys`
+ # A concise name for the metric, which can be displayed in user interfaces.
+ # Use sentence case without an ending period, for example "Request count".
+ # Corresponds to the JSON property `displayName`
# @return [String]
- attr_accessor :sys
+ attr_accessor :display_name
- # Trusted attributes supplied by the IAM system.
- # Corresponds to the JSON property `iam`
- # @return [String]
- attr_accessor :iam
+ # 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.
+ # Corresponds to the JSON property `labels`
+ # @return [Array<Google::Apis::ServicemanagementV1::LabelDescriptor>]
+ attr_accessor :labels
- # The objects of the condition. This is mutually exclusive with 'value'.
- # Corresponds to the JSON property `values`
- # @return [Array<String>]
- attr_accessor :values
-
- # An operator to apply the subject with.
- # Corresponds to the JSON property `op`
+ # Whether the metric records instantaneous values, changes to a value, etc.
+ # Some combinations of `metric_kind` and `value_type` might not be supported.
+ # Corresponds to the JSON property `metricKind`
# @return [String]
- attr_accessor :op
+ attr_accessor :metric_kind
- # Trusted attributes discharged by the service.
- # Corresponds to the JSON property `svc`
+ # The resource name of the metric descriptor. Depending on the
+ # implementation, the name typically includes: (1) the parent resource name
+ # that defines the scope of the metric type or of its data; and (2) the
+ # metric's URL-encoded type, which also appears in the `type` field of this
+ # descriptor. For example, following is the resource name of a custom
+ # metric within the GCP project `my-project-id`:
+ # "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%
+ # 2Fpaid%2Famount"
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :svc
+ attr_accessor :name
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @value = args[:value] if args.key?(:value)
- @sys = args[:sys] if args.key?(:sys)
- @iam = args[:iam] if args.key?(:iam)
- @values = args[:values] if args.key?(:values)
- @op = args[:op] if args.key?(:op)
- @svc = args[:svc] if args.key?(:svc)
- end
- end
-
- # `Documentation` provides the information for describing a service.
- # Example:
- # <pre><code>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: >
- # ...
- # </code></pre>
- # 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:
- # <pre><code>[fully.qualified.proto.name][]</code></pre>
- # To override the display text used for the link, this can be used:
- # <pre><code>[display text][fully.qualified.proto.name]</code></pre>
- # Text can be excluded from doc using the following notation:
- # <pre><code>(-- internal comment --)</code></pre>
- # Comments can be made conditional using a visibility label. The below
- # text will be only rendered if the `BETA` label is available:
- # <pre><code>(--BETA: comment for BETA users --)</code></pre>
- # 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:
- # <pre><code>(== include path/to/file ==)</code></pre>
- # 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:
- # <pre><code>(== resource_for v1.shelves.books ==)</code></pre>
- # The directive `suppress_warning` does not directly affect documentation
- # and is documented together with service config validation.
- class Documentation
- include Google::Apis::Core::Hashable
-
- # A short summary of what the service does. Can only be provided by
- # plain text.
- # Corresponds to the JSON property `summary`
+ # The metric type, including its DNS name prefix. The type is not
+ # URL-encoded. All user-defined custom metric types have the DNS name
+ # `custom.googleapis.com`. Metric types should use a natural hierarchical
+ # grouping. For example:
+ # "custom.googleapis.com/invoice/paid/amount"
+ # "appengine.googleapis.com/http/server/response_latencies"
+ # Corresponds to the JSON property `type`
# @return [String]
- attr_accessor :summary
+ attr_accessor :type
- # The URL to the root of documentation.
- # Corresponds to the JSON property `documentationRootUrl`
+ # The unit in which the metric value is reported. It is only applicable
+ # if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The
+ # supported units are a subset of [The Unified Code for Units of
+ # Measure](http://unitsofmeasure.org/ucum.html) standard:
+ # **Basic units (UNIT)**
+ # * `bit` bit
+ # * `By` byte
+ # * `s` second
+ # * `min` minute
+ # * `h` hour
+ # * `d` day
+ # **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)
+ # **Grammar**
+ # The grammar includes the dimensionless unit `1`, such as `1/s`.
+ # The grammar also includes these connectors:
+ # * `/` division (as an infix operator, e.g. `1/s`).
+ # * `.` multiplication (as an infix operator, e.g. `GBy.d`)
+ # 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` and is
+ # equivalent to `1` if it is used alone. For examples,
+ # ``requests`/s == 1/s`, `By`transmitted`/s == By/s`.
+ # * `NAME` is a sequence of non-blank printable ASCII characters not
+ # containing '`' or '`'.
+ # Corresponds to the JSON property `unit`
# @return [String]
- attr_accessor :documentation_root_url
+ attr_accessor :unit
- # Declares a single overview page. For example:
- # <pre><code>documentation:
- # summary: ...
- # overview: (== include overview.md ==)
- # </code></pre>
- # This is a shortcut for the following declaration (using pages style):
- # <pre><code>documentation:
- # summary: ...
- # pages:
- # - name: Overview
- # content: (== include overview.md ==)
- # </code></pre>
- # Note: you cannot specify both `overview` field and `pages` field.
- # Corresponds to the JSON property `overview`
+ # Whether the measurement is an integer, a floating-point number, etc.
+ # Some combinations of `metric_kind` and `value_type` might not be supported.
+ # Corresponds to the JSON property `valueType`
# @return [String]
- attr_accessor :overview
+ attr_accessor :value_type
- # A list of documentation rules that apply to individual API elements.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::DocumentationRule>]
- attr_accessor :rules
-
- # The top level pages for the documentation set.
- # Corresponds to the JSON property `pages`
- # @return [Array<Google::Apis::ServicemanagementV1::Page>]
- attr_accessor :pages
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @summary = args[:summary] if args.key?(:summary)
- @documentation_root_url = args[:documentation_root_url] if args.key?(:documentation_root_url)
- @overview = args[:overview] if args.key?(:overview)
- @rules = args[:rules] if args.key?(:rules)
- @pages = args[:pages] if args.key?(:pages)
+ @description = args[:description] if args.key?(:description)
+ @display_name = args[:display_name] if args.key?(:display_name)
+ @labels = args[:labels] if args.key?(:labels)
+ @metric_kind = args[:metric_kind] if args.key?(:metric_kind)
+ @name = args[:name] if args.key?(:name)
+ @type = args[:type] if args.key?(:type)
+ @unit = args[:unit] if args.key?(:unit)
+ @value_type = args[:value_type] if args.key?(:value_type)
end
end
- # Provides the configuration for logging a type of permissions.
- # Example:
- # `
- # "audit_log_configs": [
- # `
- # "log_type": "DATA_READ",
- # "exempted_members": [
- # "user:foo@gmail.com"
- # ]
- # `,
- # `
- # "log_type": "DATA_WRITE",
- # `
- # ]
- # `
- # This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
- # foo@gmail.com from DATA_READ logging.
- class AuditLogConfig
+ # Bind API methods to metrics. Binding a method to a metric causes that
+ # metric's configured quota behaviors to apply to the method call.
+ class MetricRule
include Google::Apis::Core::Hashable
- # The log type that this config enables.
- # Corresponds to the JSON property `logType`
- # @return [String]
- attr_accessor :log_type
+ # 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.
+ # Corresponds to the JSON property `metricCosts`
+ # @return [Hash<String,Fixnum>]
+ attr_accessor :metric_costs
- # Specifies the identities that do not cause logging for this type of
- # permission.
- # Follows the same format of Binding.members.
- # Corresponds to the JSON property `exemptedMembers`
- # @return [Array<String>]
- attr_accessor :exempted_members
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @log_type = args[:log_type] if args.key?(:log_type)
- @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
- end
- end
-
- # Represents a source file which is used to generate the service configuration
- # defined by `google.api.Service`.
- class ConfigSource
- include Google::Apis::Core::Hashable
-
- # 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.
- # Corresponds to the JSON property `id`
- # @return [String]
- attr_accessor :id
-
- # Set of source configuration files that are used to generate a service
- # configuration (`google.api.Service`).
- # Corresponds to the JSON property `files`
- # @return [Array<Google::Apis::ServicemanagementV1::ConfigFile>]
- attr_accessor :files
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @id = args[:id] if args.key?(:id)
- @files = args[:files] if args.key?(:files)
- end
- end
-
- # A backend rule provides configuration for an individual API element.
- class BackendRule
- include Google::Apis::Core::Hashable
-
- # Minimum deadline in seconds needed for this method. Calls having deadline
- # value lower than this will be rejected.
- # Corresponds to the JSON property `minDeadline`
- # @return [Float]
- attr_accessor :min_deadline
-
- # The address of the API backend.
- # Corresponds to the JSON property `address`
- # @return [String]
- attr_accessor :address
-
# Selects the methods to which this rule applies.
# Refer to selector for syntax details.
# Corresponds to the JSON property `selector`
# @return [String]
attr_accessor :selector
- # The number of seconds to wait for a response from a request. The
- # default depends on the deployment context.
- # Corresponds to the JSON property `deadline`
- # @return [Float]
- attr_accessor :deadline
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @min_deadline = args[:min_deadline] if args.key?(:min_deadline)
- @address = args[:address] if args.key?(:address)
+ @metric_costs = args[:metric_costs] if args.key?(:metric_costs)
@selector = args[:selector] if args.key?(:selector)
- @deadline = args[:deadline] if args.key?(:deadline)
end
end
- # 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.
- class AuthenticationRule
- include Google::Apis::Core::Hashable
-
- # Requirements for additional authentication providers.
- # Corresponds to the JSON property `requirements`
- # @return [Array<Google::Apis::ServicemanagementV1::AuthRequirement>]
- attr_accessor :requirements
-
- # Whether to allow requests without a credential. The credential can be
- # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
- # For requests without credentials, if the service control environment is
- # specified, each incoming request **must** be associated with a service
- # consumer. This can be done by passing an API key that belongs to a consumer
- # project.
- # Corresponds to the JSON property `allowWithoutCredential`
- # @return [Boolean]
- attr_accessor :allow_without_credential
- alias_method :allow_without_credential?, :allow_without_credential
-
- # Selects the methods to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
- # @return [String]
- attr_accessor :selector
-
- # Configuration for a custom authentication provider.
- # Corresponds to the JSON property `customAuth`
- # @return [Google::Apis::ServicemanagementV1::CustomAuthRequirements]
- attr_accessor :custom_auth
-
- # 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.
- # Corresponds to the JSON property `oauth`
- # @return [Google::Apis::ServicemanagementV1::OAuthRequirements]
- attr_accessor :oauth
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @requirements = args[:requirements] if args.key?(:requirements)
- @allow_without_credential = args[:allow_without_credential] if args.key?(:allow_without_credential)
- @selector = args[:selector] if args.key?(:selector)
- @custom_auth = args[:custom_auth] if args.key?(:custom_auth)
- @oauth = args[:oauth] if args.key?(:oauth)
- end
- end
-
- # Response message for UndeleteService method.
- class UndeleteServiceResponse
- include Google::Apis::Core::Hashable
-
- # The full representation of a Service that is managed by
- # Google Service Management.
- # Corresponds to the JSON property `service`
- # @return [Google::Apis::ServicemanagementV1::ManagedService]
- attr_accessor :service
-
- def initialize(**args)
- update!(**args)
- end
-
- # Update properties of this object
- def update!(**args)
- @service = args[:service] if args.key?(:service)
- end
- end
-
- # Defines an Identity and Access Management (IAM) policy. It is used to
- # specify access control policies for Cloud Platform resources.
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
- # `members` to a `role`, where the members can be user accounts, Google groups,
- # Google domains, and service accounts. A `role` is a named list of permissions
- # defined by IAM.
- # **Example**
+ # 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";
# `
- # "bindings": [
# `
- # "role": "roles/owner",
- # "members": [
- # "user:mike@example.com",
- # "group:admins@example.com",
- # "domain:google.com",
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
- # ]
- # `,
+ # 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=**`";
# `
- # "role": "roles/viewer",
- # "members": ["user:sean@example.com"]
# `
- # ]
+ # 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";
# `
- # For a description of IAM and its features, see the
- # [IAM developer's guide](https://cloud.google.com/iam).
- class Policy
+ # ...
+ # `
+ # 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";
+ # `
+ # ...
+ # `
+ class Mixin
include Google::Apis::Core::Hashable
- #
- # Corresponds to the JSON property `iamOwned`
- # @return [Boolean]
- attr_accessor :iam_owned
- alias_method :iam_owned?, :iam_owned
+ # The fully qualified name of the interface which is included.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
- # If more than one rule is specified, the rules are applied in the following
- # manner:
- # - All matching LOG rules are always applied.
- # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
- # Logging will be applied if one or more matching rule requires logging.
- # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
- # granted.
- # Logging will be applied if one or more matching rule requires logging.
- # - Otherwise, if no rule applies, permission is denied.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::Rule>]
- attr_accessor :rules
-
- # Version of the `Policy`. The default version is 0.
- # Corresponds to the JSON property `version`
- # @return [Fixnum]
- attr_accessor :version
-
- # Specifies cloud audit logging configuration for this policy.
- # Corresponds to the JSON property `auditConfigs`
- # @return [Array<Google::Apis::ServicemanagementV1::AuditConfig>]
- attr_accessor :audit_configs
-
- # Associates a list of `members` to a `role`.
- # `bindings` with no members will result in an error.
- # Corresponds to the JSON property `bindings`
- # @return [Array<Google::Apis::ServicemanagementV1::Binding>]
- attr_accessor :bindings
-
- # `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.
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
- # policy is overwritten blindly.
- # Corresponds to the JSON property `etag`
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
+ # If non-empty specifies a path under which inherited HTTP paths
+ # are rooted.
+ # Corresponds to the JSON property `root`
# @return [String]
- attr_accessor :etag
+ attr_accessor :root
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
- @rules = args[:rules] if args.key?(:rules)
- @version = args[:version] if args.key?(:version)
- @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
- @bindings = args[:bindings] if args.key?(:bindings)
- @etag = args[:etag] if args.key?(:etag)
+ @name = args[:name] if args.key?(:name)
+ @root = args[:root] if args.key?(:root)
end
end
- # Api is a light-weight descriptor for a protocol buffer service.
- class Api
+ # 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.
+ class MonitoredResourceDescriptor
include Google::Apis::Core::Hashable
- # The source syntax of the service.
- # Corresponds to the JSON property `syntax`
+ # Optional. A detailed description of the monitored resource type that might
+ # be used in documentation.
+ # Corresponds to the JSON property `description`
# @return [String]
- attr_accessor :syntax
+ attr_accessor :description
- # `SourceContext` represents information about the source of a
- # protobuf element, like the file in which it is defined.
- # Corresponds to the JSON property `sourceContext`
- # @return [Google::Apis::ServicemanagementV1::SourceContext]
- attr_accessor :source_context
-
- # A version string for this api. 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
- # API, which must end in `v<major-version>`, 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, none-GA apis.
- # Corresponds to the JSON property `version`
+ # 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"`.
+ # Corresponds to the JSON property `displayName`
# @return [String]
- attr_accessor :version
+ attr_accessor :display_name
- # Included APIs. See Mixin.
- # Corresponds to the JSON property `mixins`
- # @return [Array<Google::Apis::ServicemanagementV1::Mixin>]
- attr_accessor :mixins
+ # 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"`.
+ # Corresponds to the JSON property `labels`
+ # @return [Array<Google::Apis::ServicemanagementV1::LabelDescriptor>]
+ attr_accessor :labels
- # Any metadata attached to the API.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
-
- # The methods of this api, in unspecified order.
- # Corresponds to the JSON property `methods`
- # @return [Array<Google::Apis::ServicemanagementV1::MethodProp>]
- attr_accessor :methods_prop
-
- # The fully qualified name of this api, including package name
- # followed by the api's simple 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`"`.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
+ # Required. The monitored resource type. For example, the type
+ # `"cloudsql_database"` represents databases in Google Cloud SQL.
+ # The maximum length of this value is 256 characters.
+ # Corresponds to the JSON property `type`
+ # @return [String]
+ attr_accessor :type
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @syntax = args[:syntax] if args.key?(:syntax)
- @source_context = args[:source_context] if args.key?(:source_context)
- @version = args[:version] if args.key?(:version)
- @mixins = args[:mixins] if args.key?(:mixins)
- @options = args[:options] if args.key?(:options)
- @methods_prop = args[:methods_prop] if args.key?(:methods_prop)
+ @description = args[:description] if args.key?(:description)
+ @display_name = args[:display_name] if args.key?(:display_name)
+ @labels = args[:labels] if args.key?(:labels)
@name = args[:name] if args.key?(:name)
+ @type = args[:type] if args.key?(:type)
end
end
- # Write a Data Access (Gin) log
- class DataAccessOptions
+ # 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/overdue_count` metric is only sent to the
+ # consumer 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.
+ # metrics:
+ # - name: library.googleapis.com/book/returned_count
+ # metric_kind: DELTA
+ # value_type: INT64
+ # labels:
+ # - key: /customer_id
+ # - name: library.googleapis.com/book/overdue_count
+ # metric_kind: GAUGE
+ # value_type: INT64
+ # labels:
+ # - key: /customer_id
+ # 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/overdue_count
+ class Monitoring
include Google::Apis::Core::Hashable
+ # Monitoring configurations for sending metrics to the consumer project.
+ # There can be multiple consumer destinations, each one must have a
+ # different monitored resource type. A metric can be used in at most
+ # one consumer destination.
+ # Corresponds to the JSON property `consumerDestinations`
+ # @return [Array<Google::Apis::ServicemanagementV1::MonitoringDestination>]
+ attr_accessor :consumer_destinations
+
+ # Monitoring configurations for sending metrics to the producer project.
+ # There can be multiple producer destinations, each one must have a
+ # different monitored resource type. A metric can be used in at most
+ # one producer destination.
+ # Corresponds to the JSON property `producerDestinations`
+ # @return [Array<Google::Apis::ServicemanagementV1::MonitoringDestination>]
+ attr_accessor :producer_destinations
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
+ @consumer_destinations = args[:consumer_destinations] if args.key?(:consumer_destinations)
+ @producer_destinations = args[:producer_destinations] if args.key?(:producer_destinations)
end
end
- # Bind API methods to metrics. Binding a method to a metric causes that
- # metric's configured quota behaviors to apply to the method call.
- class MetricRule
+ # Configuration of a specific monitoring destination (the producer project
+ # or the consumer project).
+ class MonitoringDestination
include Google::Apis::Core::Hashable
- # 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.
- # Corresponds to the JSON property `metricCosts`
- # @return [Hash<String,Fixnum>]
- attr_accessor :metric_costs
+ # Names of the metrics to report to this monitoring destination.
+ # Each name must be defined in Service.metrics section.
+ # Corresponds to the JSON property `metrics`
+ # @return [Array<String>]
+ attr_accessor :metrics
- # Selects the methods to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
+ # The monitored resource type. The type must be defined in
+ # Service.monitored_resources section.
+ # Corresponds to the JSON property `monitoredResource`
# @return [String]
- attr_accessor :selector
+ attr_accessor :monitored_resource
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @metric_costs = args[:metric_costs] if args.key?(:metric_costs)
- @selector = args[:selector] if args.key?(:selector)
+ @metrics = args[:metrics] if args.key?(:metrics)
+ @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
end
end
- # `Authentication` defines the authentication configuration for an API.
- # Example for an API targeted for external use:
- # 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
- class Authentication
+ # 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.
+ class OAuthRequirements
include Google::Apis::Core::Hashable
- # A list of authentication rules that apply to individual API methods.
- # **NOTE:** All service configuration rules follow "last one wins" order.
- # Corresponds to the JSON property `rules`
- # @return [Array<Google::Apis::ServicemanagementV1::AuthenticationRule>]
- attr_accessor :rules
+ # 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
+ # Corresponds to the JSON property `canonicalScopes`
+ # @return [String]
+ attr_accessor :canonical_scopes
- # Defines a set of authentication providers that a service supports.
- # Corresponds to the JSON property `providers`
- # @return [Array<Google::Apis::ServicemanagementV1::AuthProvider>]
- attr_accessor :providers
-
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @rules = args[:rules] if args.key?(:rules)
- @providers = args[:providers] if args.key?(:providers)
+ @canonical_scopes = args[:canonical_scopes] if args.key?(:canonical_scopes)
end
end
# This resource represents a long-running operation that is the result of a
# network API call.
class Operation
include Google::Apis::Core::Hashable
- # 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 have the format of `operations/some/unique/name`.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
+ # 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.
+ # Corresponds to the JSON property `done`
+ # @return [Boolean]
+ attr_accessor :done
+ alias_method :done?, :done
# 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). The error model is designed to be:
# - Simple to use and understand for most users
@@ -3574,17 +3119,16 @@
# long-running operation should document the metadata type, if any.
# Corresponds to the JSON property `metadata`
# @return [Hash<String,Object>]
attr_accessor :metadata
- # 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.
- # Corresponds to the JSON property `done`
- # @return [Boolean]
- attr_accessor :done
- alias_method :done?, :done
+ # 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 have the format of `operations/some/unique/name`.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
# The normal response of the operation in case of success. 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
@@ -3600,23 +3144,100 @@
update!(**args)
end
# Update properties of this object
def update!(**args)
- @name = args[:name] if args.key?(:name)
+ @done = args[:done] if args.key?(:done)
@error = args[:error] if args.key?(:error)
@metadata = args[:metadata] if args.key?(:metadata)
- @done = args[:done] if args.key?(:done)
+ @name = args[:name] if args.key?(:name)
@response = args[:response] if args.key?(:response)
end
end
+ # The metadata associated with a long running operation resource.
+ class OperationMetadata
+ include Google::Apis::Core::Hashable
+
+ # Percentage of completion of this operation, ranging from 0 to 100.
+ # Corresponds to the JSON property `progressPercentage`
+ # @return [Fixnum]
+ attr_accessor :progress_percentage
+
+ # The full name of the resources that this operation is directly
+ # associated with.
+ # Corresponds to the JSON property `resourceNames`
+ # @return [Array<String>]
+ attr_accessor :resource_names
+
+ # The start time of the operation.
+ # Corresponds to the JSON property `startTime`
+ # @return [String]
+ attr_accessor :start_time
+
+ # Detailed status information for each step. The order is undetermined.
+ # Corresponds to the JSON property `steps`
+ # @return [Array<Google::Apis::ServicemanagementV1::Step>]
+ attr_accessor :steps
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @progress_percentage = args[:progress_percentage] if args.key?(:progress_percentage)
+ @resource_names = args[:resource_names] if args.key?(:resource_names)
+ @start_time = args[:start_time] if args.key?(:start_time)
+ @steps = args[:steps] if args.key?(:steps)
+ end
+ end
+
+ # A protocol buffer option, which can be attached to a message, field,
+ # enumeration, etc.
+ class Option
+ include Google::Apis::Core::Hashable
+
+ # 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"`.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
+
+ # 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.
+ # Corresponds to the JSON property `value`
+ # @return [Hash<String,Object>]
+ attr_accessor :value
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @name = args[:name] if args.key?(:name)
+ @value = args[:value] if args.key?(:value)
+ end
+ end
+
# Represents a documentation page. A page can contain subpages to represent
# nested documentation set structure.
class Page
include Google::Apis::Core::Hashable
+ # The Markdown content of the page. You can use <code>(== include `path` ==&#
+ # 41;</code>
+ # to include content from a Markdown file.
+ # Corresponds to the JSON property `content`
+ # @return [String]
+ attr_accessor :content
+
# 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:
@@ -3631,17 +3252,10 @@
# `Java`.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
- # The Markdown content of the page. You can use <code>(== include `path` ==&#
- # 41;</code>
- # to include content from a Markdown file.
- # Corresponds to the JSON property `content`
- # @return [String]
- attr_accessor :content
-
# Subpages of this page. The order of subpages specified here will be
# honored in the generated docset.
# Corresponds to the JSON property `subpages`
# @return [Array<Google::Apis::ServicemanagementV1::Page>]
attr_accessor :subpages
@@ -3650,232 +3264,454 @@
update!(**args)
end
# Update properties of this object
def update!(**args)
- @name = args[:name] if args.key?(:name)
@content = args[:content] if args.key?(:content)
+ @name = args[:name] if args.key?(:name)
@subpages = args[:subpages] if args.key?(:subpages)
end
end
- # 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). The error model is designed to be:
- # - Simple to use and understand for most users
- # - Flexible enough to meet unexpected needs
- # # Overview
- # The `Status` message contains three pieces of data: error code, error message,
- # and error details. The error code should be an enum value of
- # google.rpc.Code, but it may accept additional error codes if needed. The
- # error message should be a developer-facing English message that helps
- # developers *understand* and *resolve* the error. If a localized user-facing
- # error message is needed, put the localized message in the error details or
- # localize it in the client. The optional error details may contain arbitrary
- # information about the error. There is a predefined set of error detail types
- # in the package `google.rpc` that can be used for common error conditions.
- # # Language mapping
- # The `Status` message is the logical representation of the error model, but it
- # is not necessarily the actual wire format. When the `Status` message is
- # exposed in different client libraries and different wire protocols, it can be
- # mapped differently. For example, it will likely be mapped to some exceptions
- # in Java, but more likely mapped to some error codes in C.
- # # Other uses
- # The error model and the `Status` message can be used in a variety of
- # environments, either with or without APIs, to provide a
- # consistent developer experience across different environments.
- # Example uses of this error model include:
- # - Partial errors. If a service needs to return partial errors to the client,
- # it may embed the `Status` in the normal response to indicate the partial
- # errors.
- # - Workflow errors. A typical workflow has multiple steps. Each step may
- # have a `Status` message for error reporting.
- # - Batch operations. If a client uses batch request and batch response, the
- # `Status` message should be used directly inside batch response, one for
- # each error sub-response.
- # - Asynchronous operations. If an API call embeds asynchronous operation
- # results in its response, the status of those operations should be
- # represented directly using the `Status` message.
- # - Logging. If some API errors are stored in logs, the message `Status` could
- # be used directly after any stripping needed for security/privacy reasons.
- class Status
+ # Defines an Identity and Access Management (IAM) policy. It is used to
+ # specify access control policies for Cloud Platform resources.
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+ # `members` to a `role`, where the members can be user accounts, Google groups,
+ # Google domains, and service accounts. A `role` is a named list of permissions
+ # defined by IAM.
+ # **Example**
+ # `
+ # "bindings": [
+ # `
+ # "role": "roles/owner",
+ # "members": [
+ # "user:mike@example.com",
+ # "group:admins@example.com",
+ # "domain:google.com",
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+ # ]
+ # `,
+ # `
+ # "role": "roles/viewer",
+ # "members": ["user:sean@example.com"]
+ # `
+ # ]
+ # `
+ # For a description of IAM and its features, see the
+ # [IAM developer's guide](https://cloud.google.com/iam).
+ class Policy
include Google::Apis::Core::Hashable
- # A list of messages that carry the error details. There will be a
- # common set of message types for APIs to use.
- # Corresponds to the JSON property `details`
- # @return [Array<Hash<String,Object>>]
- attr_accessor :details
+ # Specifies cloud audit logging configuration for this policy.
+ # Corresponds to the JSON property `auditConfigs`
+ # @return [Array<Google::Apis::ServicemanagementV1::AuditConfig>]
+ attr_accessor :audit_configs
- # The status code, which should be an enum value of google.rpc.Code.
- # Corresponds to the JSON property `code`
- # @return [Fixnum]
- attr_accessor :code
+ # Associates a list of `members` to a `role`.
+ # `bindings` with no members will result in an error.
+ # Corresponds to the JSON property `bindings`
+ # @return [Array<Google::Apis::ServicemanagementV1::Binding>]
+ attr_accessor :bindings
- # 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.
- # Corresponds to the JSON property `message`
+ # `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.
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+ # policy is overwritten blindly.
+ # Corresponds to the JSON property `etag`
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
# @return [String]
- attr_accessor :message
+ attr_accessor :etag
+ #
+ # Corresponds to the JSON property `iamOwned`
+ # @return [Boolean]
+ attr_accessor :iam_owned
+ alias_method :iam_owned?, :iam_owned
+
+ # If more than one rule is specified, the rules are applied in the following
+ # manner:
+ # - All matching LOG rules are always applied.
+ # - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
+ # Logging will be applied if one or more matching rule requires logging.
+ # - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
+ # granted.
+ # Logging will be applied if one or more matching rule requires logging.
+ # - Otherwise, if no rule applies, permission is denied.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::Rule>]
+ attr_accessor :rules
+
+ # Version of the `Policy`. The default version is 0.
+ # Corresponds to the JSON property `version`
+ # @return [Fixnum]
+ attr_accessor :version
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @details = args[:details] if args.key?(:details)
- @code = args[:code] if args.key?(:code)
- @message = args[:message] if args.key?(:message)
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
+ @bindings = args[:bindings] if args.key?(:bindings)
+ @etag = args[:etag] if args.key?(:etag)
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
+ @rules = args[:rules] if args.key?(:rules)
+ @version = args[:version] if args.key?(:version)
end
end
- # Associates `members` with a `role`.
- class Binding
+ # Quota configuration helps to achieve fairness and budgeting in service
+ # usage.
+ # The 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:
+ # - 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
+ class Quota
include Google::Apis::Core::Hashable
- # Represents an expression text. Example:
- # title: "User account presence"
- # description: "Determines whether the request has a user account"
- # expression: "size(request.user) > 0"
- # Corresponds to the JSON property `condition`
- # @return [Google::Apis::ServicemanagementV1::Expr]
- attr_accessor :condition
+ # List of `QuotaLimit` definitions for the service.
+ # Corresponds to the JSON property `limits`
+ # @return [Array<Google::Apis::ServicemanagementV1::QuotaLimit>]
+ attr_accessor :limits
- # Specifies the identities requesting access for a Cloud Platform 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.
- # * `user:`emailid``: An email address that represents a specific Google
- # account. For example, `alice@gmail.com` or `joe@example.com`.
- # * `serviceAccount:`emailid``: An email address that represents a service
- # account. For example, `my-other-app@appspot.gserviceaccount.com`.
- # * `group:`emailid``: An email address that represents a Google group.
- # For example, `admins@example.com`.
- # * `domain:`domain``: A Google Apps domain name that represents all the
- # users of that domain. For example, `google.com` or `example.com`.
- # Corresponds to the JSON property `members`
- # @return [Array<String>]
- attr_accessor :members
+ # List of `MetricRule` definitions, each one mapping a selected method to one
+ # or more metrics.
+ # Corresponds to the JSON property `metricRules`
+ # @return [Array<Google::Apis::ServicemanagementV1::MetricRule>]
+ attr_accessor :metric_rules
- # Role that is assigned to `members`.
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
- # Required
- # Corresponds to the JSON property `role`
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @limits = args[:limits] if args.key?(:limits)
+ @metric_rules = args[:metric_rules] if args.key?(:metric_rules)
+ end
+ end
+
+ # `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`.
+ class QuotaLimit
+ include Google::Apis::Core::Hashable
+
+ # 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.
+ # Corresponds to the JSON property `defaultLimit`
+ # @return [Fixnum]
+ attr_accessor :default_limit
+
+ # 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`).
+ # Corresponds to the JSON property `description`
# @return [String]
- attr_accessor :role
+ attr_accessor :description
+ # 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.
+ # Corresponds to the JSON property `displayName`
+ # @return [String]
+ attr_accessor :display_name
+
+ # Duration of this limit in textual notation. Example: "100s", "24h", "1d".
+ # For duration longer than a day, only multiple of days is supported. We
+ # support only "100s" and "1d" for now. Additional support will be added in
+ # the future. "0" indicates indefinite duration.
+ # Used by group-based quotas only.
+ # Corresponds to the JSON property `duration`
+ # @return [String]
+ attr_accessor :duration
+
+ # 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.
+ # Corresponds to the JSON property `freeTier`
+ # @return [Fixnum]
+ attr_accessor :free_tier
+
+ # 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.
+ # Corresponds to the JSON property `maxLimit`
+ # @return [Fixnum]
+ attr_accessor :max_limit
+
+ # 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.
+ # Used by metric-based quotas only.
+ # Corresponds to the JSON property `metric`
+ # @return [String]
+ attr_accessor :metric
+
+ # Name of the quota limit. The name is used to refer to the limit when
+ # overriding the default limit on per-consumer basis.
+ # For metric-based quota limits, 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.
+ # The name of a limit is used as a unique identifier for this limit.
+ # Therefore, once a limit has been put into use, its name should be
+ # immutable. You can use the display_name field to provide a user-friendly
+ # name for the limit. The display name can be evolved over time without
+ # affecting the identity of the limit.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
+
+ # 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.
+ # The [Google Service Control](https://cloud.google.com/service-control)
+ # supports the following unit components:
+ # * One of the time intevals:
+ # * "/min" for quota every minute.
+ # * "/d" for quota every 24 hours, starting 00:00 US Pacific Time.
+ # * Otherwise the quota won't be reset by time, such as storage limit.
+ # * One and only one of the granted containers:
+ # * "/`project`" quota for a project
+ # 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.
+ # Used by metric-based quotas only.
+ # Corresponds to the JSON property `unit`
+ # @return [String]
+ attr_accessor :unit
+
+ # Tiered limit values, currently only STANDARD is supported.
+ # Corresponds to the JSON property `values`
+ # @return [Hash<String,Fixnum>]
+ attr_accessor :values
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @condition = args[:condition] if args.key?(:condition)
- @members = args[:members] if args.key?(:members)
- @role = args[:role] if args.key?(:role)
+ @default_limit = args[:default_limit] if args.key?(:default_limit)
+ @description = args[:description] if args.key?(:description)
+ @display_name = args[:display_name] if args.key?(:display_name)
+ @duration = args[:duration] if args.key?(:duration)
+ @free_tier = args[:free_tier] if args.key?(:free_tier)
+ @max_limit = args[:max_limit] if args.key?(:max_limit)
+ @metric = args[:metric] if args.key?(:metric)
+ @name = args[:name] if args.key?(:name)
+ @unit = args[:unit] if args.key?(:unit)
+ @values = args[:values] if args.key?(:values)
end
end
- # Configuration for an anthentication provider, including support for
- # [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
- # token-32).
- class AuthProvider
+ # 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.
+ class Rollout
include Google::Apis::Core::Hashable
- # 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.
- # LibraryService".
- # Example:
- # audiences: bookstore_android.apps.googleusercontent.com,
- # bookstore_web.apps.googleusercontent.com
- # Corresponds to the JSON property `audiences`
+ # Creation time of the rollout. Readonly.
+ # Corresponds to the JSON property `createTime`
# @return [String]
- attr_accessor :audiences
+ attr_accessor :create_time
- # 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
- # Corresponds to the JSON property `issuer`
+ # The user who created the Rollout. Readonly.
+ # Corresponds to the JSON property `createdBy`
# @return [String]
- attr_accessor :issuer
+ attr_accessor :created_by
- # The unique identifier of the auth provider. It will be referred to by
- # `AuthRequirement.provider_id`.
- # Example: "bookstore_auth".
- # Corresponds to the JSON property `id`
+ # Strategy used to delete a service. This strategy is a placeholder only
+ # used by the system generated rollout to delete a service.
+ # Corresponds to the JSON property `deleteServiceStrategy`
+ # @return [Google::Apis::ServicemanagementV1::DeleteServiceStrategy]
+ attr_accessor :delete_service_strategy
+
+ # Optional unique identifier of this Rollout. 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 <date><revision number>, 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'
+ # Corresponds to the JSON property `rolloutId`
# @return [String]
- attr_accessor :id
+ attr_accessor :rollout_id
- # 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
- # Corresponds to the JSON property `jwksUri`
+ # The name of the service associated with this Rollout.
+ # Corresponds to the JSON property `serviceName`
# @return [String]
- attr_accessor :jwks_uri
+ attr_accessor :service_name
+ # The status of this rollout. Readonly. In case of a failed rollout,
+ # the system will automatically rollback to the current Rollout
+ # version. Readonly.
+ # Corresponds to the JSON property `status`
+ # @return [String]
+ attr_accessor :status
+
+ # 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 precentage 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
+ # `
+ # `
+ # `
+ # Corresponds to the JSON property `trafficPercentStrategy`
+ # @return [Google::Apis::ServicemanagementV1::TrafficPercentStrategy]
+ attr_accessor :traffic_percent_strategy
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @audiences = args[:audiences] if args.key?(:audiences)
- @issuer = args[:issuer] if args.key?(:issuer)
- @id = args[:id] if args.key?(:id)
- @jwks_uri = args[:jwks_uri] if args.key?(:jwks_uri)
+ @create_time = args[:create_time] if args.key?(:create_time)
+ @created_by = args[:created_by] if args.key?(:created_by)
+ @delete_service_strategy = args[:delete_service_strategy] if args.key?(:delete_service_strategy)
+ @rollout_id = args[:rollout_id] if args.key?(:rollout_id)
+ @service_name = args[:service_name] if args.key?(:service_name)
+ @status = args[:status] if args.key?(:status)
+ @traffic_percent_strategy = args[:traffic_percent_strategy] if args.key?(:traffic_percent_strategy)
end
end
- # Enum value definition.
- class EnumValue
+ # A rule to be applied in a Policy.
+ class Rule
include Google::Apis::Core::Hashable
- # Enum value name.
- # Corresponds to the JSON property `name`
+ # Required
+ # Corresponds to the JSON property `action`
# @return [String]
- attr_accessor :name
+ attr_accessor :action
- # Protocol buffer options.
- # Corresponds to the JSON property `options`
- # @return [Array<Google::Apis::ServicemanagementV1::Option>]
- attr_accessor :options
+ # Additional restrictions that must be met
+ # Corresponds to the JSON property `conditions`
+ # @return [Array<Google::Apis::ServicemanagementV1::Condition>]
+ attr_accessor :conditions
- # Enum value number.
- # Corresponds to the JSON property `number`
- # @return [Fixnum]
- attr_accessor :number
+ # Human-readable description of the rule.
+ # Corresponds to the JSON property `description`
+ # @return [String]
+ attr_accessor :description
+ # If one or more 'in' clauses are specified, the rule matches if
+ # the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
+ # Corresponds to the JSON property `in`
+ # @return [Array<String>]
+ attr_accessor :in
+
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+ # that match the LOG action.
+ # Corresponds to the JSON property `logConfig`
+ # @return [Array<Google::Apis::ServicemanagementV1::LogConfig>]
+ attr_accessor :log_config
+
+ # If one or more 'not_in' clauses are specified, the rule matches
+ # if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+ # The format for in and not_in entries is the same as for members in a
+ # Binding (see google/iam/v1/policy.proto).
+ # Corresponds to the JSON property `notIn`
+ # @return [Array<String>]
+ attr_accessor :not_in
+
+ # A permission is a string of form '<service>.<resource type>.<verb>'
+ # (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
+ # and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
+ # Corresponds to the JSON property `permissions`
+ # @return [Array<String>]
+ attr_accessor :permissions
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @name = args[:name] if args.key?(:name)
- @options = args[:options] if args.key?(:options)
- @number = args[:number] if args.key?(:number)
+ @action = args[:action] if args.key?(:action)
+ @conditions = args[:conditions] if args.key?(:conditions)
+ @description = args[:description] if args.key?(:description)
+ @in = args[:in] if args.key?(:in)
+ @log_config = args[:log_config] if args.key?(:log_config)
+ @not_in = args[:not_in] if args.key?(:not_in)
+ @permissions = args[:permissions] if args.key?(:permissions)
end
end
# `Service` is the root object of Google service configuration schema. It
# describes basic information about a service, such as the name and the
@@ -3899,47 +3735,84 @@
# requirements:
# provider_id: google_calendar_auth
class Service
include Google::Apis::Core::Hashable
- # 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. Example:
- # types:
- # - name: google.protobuf.Int32
- # Corresponds to the JSON property `types`
- # @return [Array<Google::Apis::ServicemanagementV1::Type>]
- attr_accessor :types
+ # 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.
+ # Corresponds to the JSON property `apis`
+ # @return [Array<Google::Apis::ServicemanagementV1::Api>]
+ attr_accessor :apis
- # Source information used to create a Service Config
- # Corresponds to the JSON property `sourceInfo`
- # @return [Google::Apis::ServicemanagementV1::SourceInfo]
- attr_accessor :source_info
+ # `Authentication` defines the authentication configuration for an API.
+ # Example for an API targeted for external use:
+ # 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
+ # Corresponds to the JSON property `authentication`
+ # @return [Google::Apis::ServicemanagementV1::Authentication]
+ attr_accessor :authentication
- # 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.
- # Corresponds to the JSON property `http`
- # @return [Google::Apis::ServicemanagementV1::Http]
- attr_accessor :http
-
# `Backend` defines the backend configuration for a service.
# Corresponds to the JSON property `backend`
# @return [Google::Apis::ServicemanagementV1::Backend]
attr_accessor :backend
- # ### 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.
- # Corresponds to the JSON property `systemParameters`
- # @return [Google::Apis::ServicemanagementV1::SystemParameters]
- attr_accessor :system_parameters
+ # The semantic version of the service configuration. The config version
+ # affects the interpretation of the service configuration. For example,
+ # certain features are enabled by default for certain config versions.
+ # The latest config version is `3`.
+ # Corresponds to the JSON property `configVersion`
+ # @return [Fixnum]
+ attr_accessor :config_version
+ # `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`.
+ # Corresponds to the JSON property `context`
+ # @return [Google::Apis::ServicemanagementV1::Context]
+ attr_accessor :context
+
+ # Selects and configures the service controller used by the service. The
+ # service controller handles features like abuse, quota, billing, logging,
+ # monitoring, etc.
+ # Corresponds to the JSON property `control`
+ # @return [Google::Apis::ServicemanagementV1::Control]
+ attr_accessor :control
+
+ # 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
+ # Corresponds to the JSON property `customError`
+ # @return [Google::Apis::ServicemanagementV1::CustomError]
+ attr_accessor :custom_error
+
# `Documentation` provides the information for describing a service.
# Example:
# <pre><code>documentation:
# summary: >
# The Google Calendar API gives access
@@ -3993,10 +3866,47 @@
# and is documented together with service config validation.
# Corresponds to the JSON property `documentation`
# @return [Google::Apis::ServicemanagementV1::Documentation]
attr_accessor :documentation
+ # 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.
+ # Corresponds to the JSON property `endpoints`
+ # @return [Array<Google::Apis::ServicemanagementV1::Endpoint>]
+ attr_accessor :endpoints
+
+ # 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. Example:
+ # enums:
+ # - name: google.someapi.v1.SomeEnum
+ # Corresponds to the JSON property `enums`
+ # @return [Array<Google::Apis::ServicemanagementV1::Enum>]
+ attr_accessor :enums
+
+ # Experimental service configuration. These configuration options can
+ # only be used by whitelisted users.
+ # Corresponds to the JSON property `experimental`
+ # @return [Google::Apis::ServicemanagementV1::Experimental]
+ attr_accessor :experimental
+
+ # 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.
+ # Corresponds to the JSON property `http`
+ # @return [Google::Apis::ServicemanagementV1::Http]
+ attr_accessor :http
+
+ # 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.
+ # Corresponds to the JSON property `id`
+ # @return [String]
+ attr_accessor :id
+
# 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.
@@ -4024,97 +3934,26 @@
# - activity_history
# Corresponds to the JSON property `logging`
# @return [Google::Apis::ServicemanagementV1::Logging]
attr_accessor :logging
- # Defines the monitored resources used by this service. This is required
- # by the Service.monitoring and Service.logging configurations.
- # Corresponds to the JSON property `monitoredResources`
- # @return [Array<Google::Apis::ServicemanagementV1::MonitoredResourceDescriptor>]
- attr_accessor :monitored_resources
+ # Defines the logs used by this service.
+ # Corresponds to the JSON property `logs`
+ # @return [Array<Google::Apis::ServicemanagementV1::LogDescriptor>]
+ attr_accessor :logs
- # `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`.
- # Corresponds to the JSON property `context`
- # @return [Google::Apis::ServicemanagementV1::Context]
- attr_accessor :context
-
- # 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. Example:
- # enums:
- # - name: google.someapi.v1.SomeEnum
- # Corresponds to the JSON property `enums`
- # @return [Array<Google::Apis::ServicemanagementV1::Enum>]
- attr_accessor :enums
-
- # 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.
- # Corresponds to the JSON property `id`
- # @return [String]
- attr_accessor :id
-
- # Configuration controlling usage of a service.
- # Corresponds to the JSON property `usage`
- # @return [Google::Apis::ServicemanagementV1::Usage]
- attr_accessor :usage
-
# Defines the metrics used by this service.
# Corresponds to the JSON property `metrics`
# @return [Array<Google::Apis::ServicemanagementV1::MetricDescriptor>]
attr_accessor :metrics
- # `Authentication` defines the authentication configuration for an API.
- # Example for an API targeted for external use:
- # 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
- # Corresponds to the JSON property `authentication`
- # @return [Google::Apis::ServicemanagementV1::Authentication]
- attr_accessor :authentication
+ # Defines the monitored resources used by this service. This is required
+ # by the Service.monitoring and Service.logging configurations.
+ # Corresponds to the JSON property `monitoredResources`
+ # @return [Array<Google::Apis::ServicemanagementV1::MonitoredResourceDescriptor>]
+ attr_accessor :monitored_resources
- # Experimental service configuration. These configuration options can
- # only be used by whitelisted users.
- # Corresponds to the JSON property `experimental`
- # @return [Google::Apis::ServicemanagementV1::Experimental]
- attr_accessor :experimental
-
- # Selects and configures the service controller used by the service. The
- # service controller handles features like abuse, quota, billing, logging,
- # monitoring, etc.
- # Corresponds to the JSON property `control`
- # @return [Google::Apis::ServicemanagementV1::Control]
- attr_accessor :control
-
- # The version of the service configuration. The config version may
- # influence interpretation of the configuration, for example, to
- # determine defaults. This is documented together with applicable
- # options. The current default for the config version itself is `3`.
- # Corresponds to the JSON property `configVersion`
- # @return [Fixnum]
- attr_accessor :config_version
-
# 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
@@ -4150,45 +3989,21 @@
# - library.googleapis.com/book/overdue_count
# Corresponds to the JSON property `monitoring`
# @return [Google::Apis::ServicemanagementV1::Monitoring]
attr_accessor :monitoring
- # 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.
- # Corresponds to the JSON property `systemTypes`
- # @return [Array<Google::Apis::ServicemanagementV1::Type>]
- attr_accessor :system_types
+ # The DNS address at which this service is available,
+ # e.g. `calendar.googleapis.com`.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
# The Google project that owns this service.
# Corresponds to the JSON property `producerProjectId`
# @return [String]
attr_accessor :producer_project_id
- # `Visibility` defines restrictions for the visibility of service
- # elements. Restrictions are specified using visibility labels
- # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
- # Users and projects can have access to more than one visibility label. The
- # effective visibility for multiple labels is the union of each label's
- # elements, plus any unrestricted elements.
- # If an element and its parents have no restrictions, visibility is
- # unconditionally granted.
- # Example:
- # visibility:
- # rules:
- # - selector: google.calendar.Calendar.EnhancedSearch
- # restriction: TRUSTED_TESTER
- # - selector: google.calendar.Calendar.Delegate
- # restriction: GOOGLE_INTERNAL
- # Here, all methods are publicly visible except for the restricted methods
- # EnhancedSearch and Delegate.
- # Corresponds to the JSON property `visibility`
- # @return [Google::Apis::ServicemanagementV1::Visibility]
- attr_accessor :visibility
-
# Quota configuration helps to achieve fairness and budgeting in service
# usage.
# The 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
@@ -4228,590 +4043,730 @@
# value_type: INT64
# Corresponds to the JSON property `quota`
# @return [Google::Apis::ServicemanagementV1::Quota]
attr_accessor :quota
- # The DNS address at which this service is available,
- # e.g. `calendar.googleapis.com`.
- # Corresponds to the JSON property `name`
- # @return [String]
- attr_accessor :name
+ # Source information used to create a Service Config
+ # Corresponds to the JSON property `sourceInfo`
+ # @return [Google::Apis::ServicemanagementV1::SourceInfo]
+ attr_accessor :source_info
- # 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
- # Corresponds to the JSON property `customError`
- # @return [Google::Apis::ServicemanagementV1::CustomError]
- attr_accessor :custom_error
+ # ### 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.
+ # Corresponds to the JSON property `systemParameters`
+ # @return [Google::Apis::ServicemanagementV1::SystemParameters]
+ attr_accessor :system_parameters
+ # 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.
+ # Corresponds to the JSON property `systemTypes`
+ # @return [Array<Google::Apis::ServicemanagementV1::Type>]
+ attr_accessor :system_types
+
# The product title for this service.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
- # 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.
- # Corresponds to the JSON property `endpoints`
- # @return [Array<Google::Apis::ServicemanagementV1::Endpoint>]
- attr_accessor :endpoints
+ # 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. Example:
+ # types:
+ # - name: google.protobuf.Int32
+ # Corresponds to the JSON property `types`
+ # @return [Array<Google::Apis::ServicemanagementV1::Type>]
+ attr_accessor :types
- # Defines the logs used by this service.
- # Corresponds to the JSON property `logs`
- # @return [Array<Google::Apis::ServicemanagementV1::LogDescriptor>]
- attr_accessor :logs
+ # Configuration controlling usage of a service.
+ # Corresponds to the JSON property `usage`
+ # @return [Google::Apis::ServicemanagementV1::Usage]
+ attr_accessor :usage
- # 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.
- # Corresponds to the JSON property `apis`
- # @return [Array<Google::Apis::ServicemanagementV1::Api>]
- attr_accessor :apis
+ # `Visibility` defines restrictions for the visibility of service
+ # elements. Restrictions are specified using visibility labels
+ # (e.g., TRUSTED_TESTER) that are elsewhere linked to users and projects.
+ # Users and projects can have access to more than one visibility label. The
+ # effective visibility for multiple labels is the union of each label's
+ # elements, plus any unrestricted elements.
+ # If an element and its parents have no restrictions, visibility is
+ # unconditionally granted.
+ # Example:
+ # visibility:
+ # rules:
+ # - selector: google.calendar.Calendar.EnhancedSearch
+ # restriction: TRUSTED_TESTER
+ # - selector: google.calendar.Calendar.Delegate
+ # restriction: GOOGLE_INTERNAL
+ # Here, all methods are publicly visible except for the restricted methods
+ # EnhancedSearch and Delegate.
+ # Corresponds to the JSON property `visibility`
+ # @return [Google::Apis::ServicemanagementV1::Visibility]
+ attr_accessor :visibility
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @types = args[:types] if args.key?(:types)
- @source_info = args[:source_info] if args.key?(:source_info)
- @http = args[:http] if args.key?(:http)
+ @apis = args[:apis] if args.key?(:apis)
+ @authentication = args[:authentication] if args.key?(:authentication)
@backend = args[:backend] if args.key?(:backend)
- @system_parameters = args[:system_parameters] if args.key?(:system_parameters)
- @documentation = args[:documentation] if args.key?(:documentation)
- @logging = args[:logging] if args.key?(:logging)
- @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources)
+ @config_version = args[:config_version] if args.key?(:config_version)
@context = args[:context] if args.key?(:context)
+ @control = args[:control] if args.key?(:control)
+ @custom_error = args[:custom_error] if args.key?(:custom_error)
+ @documentation = args[:documentation] if args.key?(:documentation)
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
@enums = args[:enums] if args.key?(:enums)
+ @experimental = args[:experimental] if args.key?(:experimental)
+ @http = args[:http] if args.key?(:http)
@id = args[:id] if args.key?(:id)
- @usage = args[:usage] if args.key?(:usage)
+ @logging = args[:logging] if args.key?(:logging)
+ @logs = args[:logs] if args.key?(:logs)
@metrics = args[:metrics] if args.key?(:metrics)
- @authentication = args[:authentication] if args.key?(:authentication)
- @experimental = args[:experimental] if args.key?(:experimental)
- @control = args[:control] if args.key?(:control)
- @config_version = args[:config_version] if args.key?(:config_version)
+ @monitored_resources = args[:monitored_resources] if args.key?(:monitored_resources)
@monitoring = args[:monitoring] if args.key?(:monitoring)
- @system_types = args[:system_types] if args.key?(:system_types)
+ @name = args[:name] if args.key?(:name)
@producer_project_id = args[:producer_project_id] if args.key?(:producer_project_id)
- @visibility = args[:visibility] if args.key?(:visibility)
@quota = args[:quota] if args.key?(:quota)
- @name = args[:name] if args.key?(:name)
- @custom_error = args[:custom_error] if args.key?(:custom_error)
+ @source_info = args[:source_info] if args.key?(:source_info)
+ @system_parameters = args[:system_parameters] if args.key?(:system_parameters)
+ @system_types = args[:system_types] if args.key?(:system_types)
@title = args[:title] if args.key?(:title)
- @endpoints = args[:endpoints] if args.key?(:endpoints)
- @logs = args[:logs] if args.key?(:logs)
- @apis = args[:apis] if args.key?(:apis)
+ @types = args[:types] if args.key?(:types)
+ @usage = args[:usage] if args.key?(:usage)
+ @visibility = args[:visibility] if args.key?(:visibility)
end
end
- # The response message for Operations.ListOperations.
- class ListOperationsResponse
+ # Request message for `SetIamPolicy` method.
+ class SetIamPolicyRequest
include Google::Apis::Core::Hashable
- # A list of operations that matches the specified filter in the request.
- # Corresponds to the JSON property `operations`
- # @return [Array<Google::Apis::ServicemanagementV1::Operation>]
- attr_accessor :operations
+ # Defines an Identity and Access Management (IAM) policy. It is used to
+ # specify access control policies for Cloud Platform resources.
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
+ # `members` to a `role`, where the members can be user accounts, Google groups,
+ # Google domains, and service accounts. A `role` is a named list of permissions
+ # defined by IAM.
+ # **Example**
+ # `
+ # "bindings": [
+ # `
+ # "role": "roles/owner",
+ # "members": [
+ # "user:mike@example.com",
+ # "group:admins@example.com",
+ # "domain:google.com",
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
+ # ]
+ # `,
+ # `
+ # "role": "roles/viewer",
+ # "members": ["user:sean@example.com"]
+ # `
+ # ]
+ # `
+ # For a description of IAM and its features, see the
+ # [IAM developer's guide](https://cloud.google.com/iam).
+ # Corresponds to the JSON property `policy`
+ # @return [Google::Apis::ServicemanagementV1::Policy]
+ attr_accessor :policy
- # The standard List next-page token.
- # Corresponds to the JSON property `nextPageToken`
+ # 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"
+ # This field is only used by Cloud IAM.
+ # Corresponds to the JSON property `updateMask`
# @return [String]
- attr_accessor :next_page_token
+ attr_accessor :update_mask
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @operations = args[:operations] if args.key?(:operations)
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
+ @policy = args[:policy] if args.key?(:policy)
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
end
end
- # The metadata associated with a long running operation resource.
- class OperationMetadata
+ # `SourceContext` represents information about the source of a
+ # protobuf element, like the file in which it is defined.
+ class SourceContext
include Google::Apis::Core::Hashable
- # Percentage of completion of this operation, ranging from 0 to 100.
- # Corresponds to the JSON property `progressPercentage`
+ # The path-qualified name of the .proto file that contained the associated
+ # protobuf element. For example: `"google/protobuf/source_context.proto"`.
+ # Corresponds to the JSON property `fileName`
+ # @return [String]
+ attr_accessor :file_name
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @file_name = args[:file_name] if args.key?(:file_name)
+ end
+ end
+
+ # Source information used to create a Service Config
+ class SourceInfo
+ include Google::Apis::Core::Hashable
+
+ # All files used during config generation.
+ # Corresponds to the JSON property `sourceFiles`
+ # @return [Array<Hash<String,Object>>]
+ attr_accessor :source_files
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @source_files = args[:source_files] if args.key?(:source_files)
+ end
+ end
+
+ # 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). The error model is designed to be:
+ # - Simple to use and understand for most users
+ # - Flexible enough to meet unexpected needs
+ # # Overview
+ # The `Status` message contains three pieces of data: error code, error message,
+ # and error details. The error code should be an enum value of
+ # google.rpc.Code, but it may accept additional error codes if needed. The
+ # error message should be a developer-facing English message that helps
+ # developers *understand* and *resolve* the error. If a localized user-facing
+ # error message is needed, put the localized message in the error details or
+ # localize it in the client. The optional error details may contain arbitrary
+ # information about the error. There is a predefined set of error detail types
+ # in the package `google.rpc` that can be used for common error conditions.
+ # # Language mapping
+ # The `Status` message is the logical representation of the error model, but it
+ # is not necessarily the actual wire format. When the `Status` message is
+ # exposed in different client libraries and different wire protocols, it can be
+ # mapped differently. For example, it will likely be mapped to some exceptions
+ # in Java, but more likely mapped to some error codes in C.
+ # # Other uses
+ # The error model and the `Status` message can be used in a variety of
+ # environments, either with or without APIs, to provide a
+ # consistent developer experience across different environments.
+ # Example uses of this error model include:
+ # - Partial errors. If a service needs to return partial errors to the client,
+ # it may embed the `Status` in the normal response to indicate the partial
+ # errors.
+ # - Workflow errors. A typical workflow has multiple steps. Each step may
+ # have a `Status` message for error reporting.
+ # - Batch operations. If a client uses batch request and batch response, the
+ # `Status` message should be used directly inside batch response, one for
+ # each error sub-response.
+ # - Asynchronous operations. If an API call embeds asynchronous operation
+ # results in its response, the status of those operations should be
+ # represented directly using the `Status` message.
+ # - Logging. If some API errors are stored in logs, the message `Status` could
+ # be used directly after any stripping needed for security/privacy reasons.
+ class Status
+ include Google::Apis::Core::Hashable
+
+ # The status code, which should be an enum value of google.rpc.Code.
+ # Corresponds to the JSON property `code`
# @return [Fixnum]
- attr_accessor :progress_percentage
+ attr_accessor :code
- # The start time of the operation.
- # Corresponds to the JSON property `startTime`
+ # A list of messages that carry the error details. There is a common set of
+ # message types for APIs to use.
+ # Corresponds to the JSON property `details`
+ # @return [Array<Hash<String,Object>>]
+ attr_accessor :details
+
+ # 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.
+ # Corresponds to the JSON property `message`
# @return [String]
- attr_accessor :start_time
+ attr_accessor :message
- # Detailed status information for each step. The order is undetermined.
- # Corresponds to the JSON property `steps`
- # @return [Array<Google::Apis::ServicemanagementV1::Step>]
- attr_accessor :steps
+ def initialize(**args)
+ update!(**args)
+ end
- # The full name of the resources that this operation is directly
- # associated with.
- # Corresponds to the JSON property `resourceNames`
- # @return [Array<String>]
- attr_accessor :resource_names
+ # Update properties of this object
+ def update!(**args)
+ @code = args[:code] if args.key?(:code)
+ @details = args[:details] if args.key?(:details)
+ @message = args[:message] if args.key?(:message)
+ end
+ end
+ # Represents the status of one operation step.
+ class Step
+ include Google::Apis::Core::Hashable
+
+ # The short description of the step.
+ # Corresponds to the JSON property `description`
+ # @return [String]
+ attr_accessor :description
+
+ # The status code.
+ # Corresponds to the JSON property `status`
+ # @return [String]
+ attr_accessor :status
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @progress_percentage = args[:progress_percentage] if args.key?(:progress_percentage)
- @start_time = args[:start_time] if args.key?(:start_time)
- @steps = args[:steps] if args.key?(:steps)
- @resource_names = args[:resource_names] if args.key?(:resource_names)
+ @description = args[:description] if args.key?(:description)
+ @status = args[:status] if args.key?(:status)
end
end
- # A custom pattern is used for defining custom HTTP verb.
- class CustomHttpPattern
+ # Request message for SubmitConfigSource method.
+ class SubmitConfigSourceRequest
include Google::Apis::Core::Hashable
- # The name of this custom HTTP verb.
- # Corresponds to the JSON property `kind`
+ # Represents a source file which is used to generate the service configuration
+ # defined by `google.api.Service`.
+ # Corresponds to the JSON property `configSource`
+ # @return [Google::Apis::ServicemanagementV1::ConfigSource]
+ attr_accessor :config_source
+
+ # 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.
+ # Corresponds to the JSON property `validateOnly`
+ # @return [Boolean]
+ attr_accessor :validate_only
+ alias_method :validate_only?, :validate_only
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @config_source = args[:config_source] if args.key?(:config_source)
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
+ end
+ end
+
+ # Response message for SubmitConfigSource method.
+ class SubmitConfigSourceResponse
+ include Google::Apis::Core::Hashable
+
+ # `Service` is the root object of Google service configuration schema. It
+ # describes basic information about a service, such as the name and the
+ # 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. See each proto message definition for details.
+ # Example:
+ # type: google.api.Service
+ # config_version: 3
+ # name: calendar.googleapis.com
+ # title: Google Calendar API
+ # apis:
+ # - name: google.calendar.v3.Calendar
+ # 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
+ # Corresponds to the JSON property `serviceConfig`
+ # @return [Google::Apis::ServicemanagementV1::Service]
+ attr_accessor :service_config
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @service_config = args[:service_config] if args.key?(:service_config)
+ end
+ end
+
+ # 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.
+ class SystemParameter
+ include Google::Apis::Core::Hashable
+
+ # Define the HTTP header name to use for the parameter. It is case
+ # insensitive.
+ # Corresponds to the JSON property `httpHeader`
# @return [String]
- attr_accessor :kind
+ attr_accessor :http_header
- # The path matched by this custom verb.
- # Corresponds to the JSON property `path`
+ # Define the name of the parameter, such as "api_key" . It is case sensitive.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :path
+ attr_accessor :name
+ # Define the URL query parameter name to use for the parameter. It is case
+ # sensitive.
+ # Corresponds to the JSON property `urlQueryParameter`
+ # @return [String]
+ attr_accessor :url_query_parameter
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @kind = args[:kind] if args.key?(:kind)
- @path = args[:path] if args.key?(:path)
+ @http_header = args[:http_header] if args.key?(:http_header)
+ @name = args[:name] if args.key?(:name)
+ @url_query_parameter = args[:url_query_parameter] if args.key?(:url_query_parameter)
end
end
# Define a system parameter rule mapping system parameter definitions to
# methods.
class SystemParameterRule
include Google::Apis::Core::Hashable
- # Selects the methods to which this rule applies. Use '*' to indicate all
- # methods in all APIs.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
- # @return [String]
- attr_accessor :selector
-
# 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.
# Corresponds to the JSON property `parameters`
# @return [Array<Google::Apis::ServicemanagementV1::SystemParameter>]
attr_accessor :parameters
+ # Selects the methods to which this rule applies. Use '*' to indicate all
+ # methods in all APIs.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
+ # @return [String]
+ attr_accessor :selector
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @selector = args[:selector] if args.key?(:selector)
@parameters = args[:parameters] if args.key?(:parameters)
+ @selector = args[:selector] if args.key?(:selector)
end
end
- # A visibility rule provides visibility configuration for an individual API
- # element.
- class VisibilityRule
+ # ### 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.
+ class SystemParameters
include Google::Apis::Core::Hashable
- # A comma-separated list of visibility labels that apply to the `selector`.
- # Any of the listed labels can be used to grant the visibility.
- # If a rule has multiple labels, removing one of the labels but not all of
- # them can break clients.
- # Example:
- # visibility:
+ # 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: google.calendar.Calendar.EnhancedSearch
- # restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
- # Removing GOOGLE_INTERNAL from this restriction will break clients that
- # rely on this method and only had access to it through GOOGLE_INTERNAL.
- # Corresponds to the JSON property `restriction`
- # @return [String]
- attr_accessor :restriction
+ # - 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.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::SystemParameterRule>]
+ attr_accessor :rules
- # Selects methods, messages, fields, enums, etc. to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
- # @return [String]
- attr_accessor :selector
+ def initialize(**args)
+ update!(**args)
+ end
+ # Update properties of this object
+ def update!(**args)
+ @rules = args[:rules] if args.key?(:rules)
+ end
+ end
+
+ # Request message for `TestIamPermissions` method.
+ class TestIamPermissionsRequest
+ include Google::Apis::Core::Hashable
+
+ # 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).
+ # Corresponds to the JSON property `permissions`
+ # @return [Array<String>]
+ attr_accessor :permissions
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @restriction = args[:restriction] if args.key?(:restriction)
- @selector = args[:selector] if args.key?(:selector)
+ @permissions = args[:permissions] if args.key?(:permissions)
end
end
- # `HttpRule` defines the mapping of an RPC method to one or more HTTP
- # REST API methods. The mapping specifies how different portions of the RPC
- # request message are mapped to URL path, URL query parameters, and
- # HTTP request body. The mapping is typically specified as an
- # `google.api.http` annotation on the RPC method,
- # see "google/api/annotations.proto" for details.
- # The mapping consists of a field specifying the path template and
- # method kind. The path template can refer to fields in the request
- # message, as in the example below which describes a REST GET
- # operation on a resource collection of messages:
- # service Messaging `
- # rpc GetMessage(GetMessageRequest) returns (Message) `
- # option (google.api.http).get = "/v1/messages/`message_id`/`sub.
- # subfield`";
+ # Response message for `TestIamPermissions` method.
+ class TestIamPermissionsResponse
+ include Google::Apis::Core::Hashable
+
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
+ # allowed.
+ # Corresponds to the JSON property `permissions`
+ # @return [Array<String>]
+ attr_accessor :permissions
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @permissions = args[:permissions] if args.key?(:permissions)
+ end
+ end
+
+ # 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 precentage 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
# `
# `
- # message GetMessageRequest `
- # message SubMessage `
- # string subfield = 1;
# `
- # string message_id = 1; // mapped to the URL
- # SubMessage sub = 2; // `sub.subfield` is url-mapped
+ # Day 2
+ # Rollout `
+ # id: "example.googleapis.com/rollout_20160207"
+ # traffic_percent_strategy: `
+ # percentages: `
+ # "example.googleapis.com/20160206": 100.00
# `
- # message Message `
- # string text = 1; // content of the resource
# `
- # The same http annotation can alternatively be expressed inside the
- # `GRPC API Configuration` YAML file.
- # http:
- # rules:
- # - selector: <proto_package_name>.Messaging.GetMessage
- # get: /v1/messages/`message_id`/`sub.subfield`
- # This definition enables an automatic, bidrectional mapping of HTTP
- # JSON to RPC. Example:
- # HTTP | RPC
- # -----|-----
- # `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub:
- # SubMessage(subfield: "foo"))`
- # In general, not only fields but also field paths can be referenced
- # from a path pattern. Fields mapped to the path pattern cannot be
- # repeated and must have a primitive (non-message) type.
- # Any fields in the request message which are not bound by the path
- # pattern automatically become (optional) HTTP query
- # parameters. Assume the following definition of the request message:
- # 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 the URL
- # int64 revision = 2; // becomes a parameter
- # SubMessage sub = 3; // `sub.subfield` becomes a parameter
- # `
- # This enables a HTTP JSON to RPC mapping as below:
- # HTTP | RPC
- # -----|-----
- # `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 HTTP parameters must have a
- # primitive type or a repeated primitive type. Message types are not
- # allowed. In the case of a repeated type, the parameter can be
- # repeated in the URL, as in `...?param=A¶m=B`.
- # For HTTP method kinds which 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) = `
- # put: "/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 | RPC
- # -----|-----
- # `PUT /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) = `
- # put: "/v1/messages/`message_id`"
- # body: "*"
- # `;
- # `
- # `
- # message Message `
- # string message_id = 1;
- # string text = 2;
- # `
- # The following HTTP JSON to RPC mapping is enabled:
- # HTTP | RPC
- # -----|-----
- # `PUT /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 of
- # 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 | RPC
- # -----|-----
- # `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
- # The rules for mapping HTTP path, query parameters, and body fields
- # to the request message are as follows:
- # 1. The `body` field specifies either `*` or a field path, or is
- # omitted. If omitted, it indicates there is no HTTP request body.
- # 2. Leaf fields (recursive expansion of nested messages in the
- # request) can be classified into three types:
- # (a) Matched in the URL template.
- # (b) Covered by body (if body is `*`, everything except (a) fields;
- # else everything under the body field)
- # (c) All other fields.
- # 3. URL query parameters found in the HTTP request are mapped to (c) fields.
- # 4. Any body sent with an HTTP request can contain only (b) fields.
- # The syntax of the path template is as follows:
- # Template = "/" Segments [ Verb ] ;
- # Segments = Segment ` "/" Segment ` ;
- # Segment = "*" | "**" | LITERAL | Variable ;
- # Variable = "`" FieldPath [ "=" Segments ] "`" ;
- # FieldPath = IDENT ` "." IDENT ` ;
- # Verb = ":" LITERAL ;
- # The syntax `*` matches a single path segment. The syntax `**` matches zero
- # or more path segments, which must be the last part of the path except the
- # `Verb`. The syntax `LITERAL` matches literal text in the path.
- # 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=*``.
- # If a variable contains exactly one path segment, such as `"`var`"` or
- # `"`var=*`"`, when such a variable is expanded into a URL path, all characters
- # except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
- # Discovery Document as ``var``.
- # If a variable contains one or more path segments, such as `"`var=foo/*`"`
- # or `"`var=**`"`, when such a variable is expanded into a URL path, all
- # characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
- # show up in the Discovery Document as ``+var``.
- # NOTE: While the single segment variable matches the semantics of
- # [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
- # Simple String Expansion, the multi segment variable **does not** match
- # RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
- # does not expand special characters like `?` and `#`, which would lead
- # to invalid URLs.
- # NOTE: the field paths in variables and in the `body` must not refer to
- # repeated fields or map fields.
- class HttpRule
+ class TrafficPercentStrategy
include Google::Apis::Core::Hashable
- # Defines the Media configuration for a service in case of an upload.
- # Use this only for Scotty Requests. Do not use this for media support using
- # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
- # your configuration for Bytestream methods.
- # Corresponds to the JSON property `mediaUpload`
- # @return [Google::Apis::ServicemanagementV1::MediaUpload]
- attr_accessor :media_upload
+ # 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.
+ # Corresponds to the JSON property `percentages`
+ # @return [Hash<String,Float>]
+ attr_accessor :percentages
- # Selects methods to which this rule applies.
- # Refer to selector for syntax details.
- # Corresponds to the JSON property `selector`
- # @return [String]
- attr_accessor :selector
+ def initialize(**args)
+ update!(**args)
+ end
- # A custom pattern is used for defining custom HTTP verb.
- # Corresponds to the JSON property `custom`
- # @return [Google::Apis::ServicemanagementV1::CustomHttpPattern]
- attr_accessor :custom
+ # Update properties of this object
+ def update!(**args)
+ @percentages = args[:percentages] if args.key?(:percentages)
+ end
+ end
- # Used for listing and getting information about resources.
- # Corresponds to the JSON property `get`
- # @return [String]
- attr_accessor :get
+ # A protocol buffer message type.
+ class Type
+ include Google::Apis::Core::Hashable
- # Used for updating a resource.
- # Corresponds to the JSON property `patch`
- # @return [String]
- attr_accessor :patch
+ # The list of fields.
+ # Corresponds to the JSON property `fields`
+ # @return [Array<Google::Apis::ServicemanagementV1::Field>]
+ attr_accessor :fields
- # Used for updating a resource.
- # Corresponds to the JSON property `put`
+ # The fully qualified message name.
+ # Corresponds to the JSON property `name`
# @return [String]
- attr_accessor :put
+ attr_accessor :name
- # Used for deleting a resource.
- # Corresponds to the JSON property `delete`
- # @return [String]
- attr_accessor :delete
+ # The list of types appearing in `oneof` definitions in this type.
+ # Corresponds to the JSON property `oneofs`
+ # @return [Array<String>]
+ attr_accessor :oneofs
- # The name of the request field whose value is mapped to the HTTP body, or
- # `*` for mapping all fields not captured by the path pattern to the HTTP
- # body. NOTE: the referred field must not be a repeated field and must be
- # present at the top-level of request message type.
- # Corresponds to the JSON property `body`
- # @return [String]
- attr_accessor :body
+ # The protocol buffer options.
+ # Corresponds to the JSON property `options`
+ # @return [Array<Google::Apis::ServicemanagementV1::Option>]
+ attr_accessor :options
- # Defines the Media configuration for a service in case of a download.
- # Use this only for Scotty Requests. Do not use this for media support using
- # Bytestream, add instead [][google.bytestream.RestByteStream] as an API to
- # your configuration for Bytestream methods.
- # Corresponds to the JSON property `mediaDownload`
- # @return [Google::Apis::ServicemanagementV1::MediaDownload]
- attr_accessor :media_download
+ # `SourceContext` represents information about the source of a
+ # protobuf element, like the file in which it is defined.
+ # Corresponds to the JSON property `sourceContext`
+ # @return [Google::Apis::ServicemanagementV1::SourceContext]
+ attr_accessor :source_context
- # Used for creating a resource.
- # Corresponds to the JSON property `post`
+ # The source syntax.
+ # Corresponds to the JSON property `syntax`
# @return [String]
- attr_accessor :post
+ attr_accessor :syntax
- # Optional. The rest method name is by default derived from the URL
- # pattern. If specified, this field overrides the default method name.
- # Example:
- # rpc CreateResource(CreateResourceRequest)
- # returns (CreateResourceResponse) `
- # option (google.api.http) = `
- # post: "/v1/resources",
- # body: "resource",
- # rest_method_name: "insert"
- # `;
- # `
- # This method has the automatically derived rest method name "create", but
- # for backwards compatability with apiary, it is specified as insert.
- # Corresponds to the JSON property `restMethodName`
- # @return [String]
- attr_accessor :rest_method_name
+ def initialize(**args)
+ update!(**args)
+ end
- # 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).
- # Corresponds to the JSON property `additionalBindings`
- # @return [Array<Google::Apis::ServicemanagementV1::HttpRule>]
- attr_accessor :additional_bindings
+ # Update properties of this object
+ def update!(**args)
+ @fields = args[:fields] if args.key?(:fields)
+ @name = args[:name] if args.key?(:name)
+ @oneofs = args[:oneofs] if args.key?(:oneofs)
+ @options = args[:options] if args.key?(:options)
+ @source_context = args[:source_context] if args.key?(:source_context)
+ @syntax = args[:syntax] if args.key?(:syntax)
+ end
+ end
- # The name of the response field whose value is mapped to the HTTP body of
- # response. Other response fields are ignored. This field is optional. When
- # not set, the response message will be used as HTTP body of response.
- # NOTE: the referred field must be not a repeated field and must be present
- # at the top-level of response message type.
- # Corresponds to the JSON property `responseBody`
- # @return [String]
- attr_accessor :response_body
+ # Response message for UndeleteService method.
+ class UndeleteServiceResponse
+ include Google::Apis::Core::Hashable
- # Optional. The REST collection name is by default derived from the URL
- # pattern. If specified, this field overrides the default collection name.
- # Example:
- # rpc AddressesAggregatedList(AddressesAggregatedListRequest)
- # returns (AddressesAggregatedListResponse) `
- # option (google.api.http) = `
- # get: "/v1/projects/`project_id`/aggregated/addresses"
- # rest_collection: "projects.addresses"
- # `;
- # `
- # This method has the automatically derived collection name
- # "projects.aggregated". Because, semantically, this rpc is actually an
- # operation on the "projects.addresses" collection, the `rest_collection`
- # field is configured to override the derived collection name.
- # Corresponds to the JSON property `restCollection`
- # @return [String]
- attr_accessor :rest_collection
+ # The full representation of a Service that is managed by
+ # Google Service Management.
+ # Corresponds to the JSON property `service`
+ # @return [Google::Apis::ServicemanagementV1::ManagedService]
+ attr_accessor :service
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @media_upload = args[:media_upload] if args.key?(:media_upload)
- @selector = args[:selector] if args.key?(:selector)
- @custom = args[:custom] if args.key?(:custom)
- @get = args[:get] if args.key?(:get)
- @patch = args[:patch] if args.key?(:patch)
- @put = args[:put] if args.key?(:put)
- @delete = args[:delete] if args.key?(:delete)
- @body = args[:body] if args.key?(:body)
- @media_download = args[:media_download] if args.key?(:media_download)
- @post = args[:post] if args.key?(:post)
- @rest_method_name = args[:rest_method_name] if args.key?(:rest_method_name)
- @additional_bindings = args[:additional_bindings] if args.key?(:additional_bindings)
- @response_body = args[:response_body] if args.key?(:response_body)
- @rest_collection = args[:rest_collection] if args.key?(:rest_collection)
+ @service = args[:service] if args.key?(:service)
end
end
- # Configuration of a specific monitoring destination (the producer project
- # or the consumer project).
- class MonitoringDestination
+ # Configuration controlling usage of a service.
+ class Usage
include Google::Apis::Core::Hashable
- # Names of the metrics to report to this monitoring destination.
- # Each name must be defined in Service.metrics section.
- # Corresponds to the JSON property `metrics`
+ # 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.
+ # Corresponds to the JSON property `producerNotificationChannel`
+ # @return [String]
+ attr_accessor :producer_notification_channel
+
+ # Requirements that must be satisfied before a consumer project can use the
+ # service. Each requirement is of the form <service.name>/<requirement-id>;
+ # for example 'serviceusage.googleapis.com/billing-enabled'.
+ # Corresponds to the JSON property `requirements`
# @return [Array<String>]
- attr_accessor :metrics
+ attr_accessor :requirements
- # The monitored resource type. The type must be defined in
- # Service.monitored_resources section.
- # Corresponds to the JSON property `monitoredResource`
+ # A list of usage rules that apply to individual API methods.
+ # **NOTE:** All service configuration rules follow "last one wins" order.
+ # Corresponds to the JSON property `rules`
+ # @return [Array<Google::Apis::ServicemanagementV1::UsageRule>]
+ attr_accessor :rules
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @producer_notification_channel = args[:producer_notification_channel] if args.key?(:producer_notification_channel)
+ @requirements = args[:requirements] if args.key?(:requirements)
+ @rules = args[:rules] if args.key?(:rules)
+ end
+ end
+
+ # 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
+ class UsageRule
+ include Google::Apis::Core::Hashable
+
+ # True, if the method allows unregistered calls; false otherwise.
+ # Corresponds to the JSON property `allowUnregisteredCalls`
+ # @return [Boolean]
+ attr_accessor :allow_unregistered_calls
+ alias_method :allow_unregistered_calls?, :allow_unregistered_calls
+
+ # Selects the methods to which this rule applies. Use '*' to indicate all
+ # methods in all APIs.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
# @return [String]
- attr_accessor :monitored_resource
+ attr_accessor :selector
+ # True, if the method should skip service control. If so, no control plane
+ # feature (like quota and billing) will be enabled.
+ # Corresponds to the JSON property `skipServiceControl`
+ # @return [Boolean]
+ attr_accessor :skip_service_control
+ alias_method :skip_service_control?, :skip_service_control
+
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
- @metrics = args[:metrics] if args.key?(:metrics)
- @monitored_resource = args[:monitored_resource] if args.key?(:monitored_resource)
+ @allow_unregistered_calls = args[:allow_unregistered_calls] if args.key?(:allow_unregistered_calls)
+ @selector = args[:selector] if args.key?(:selector)
+ @skip_service_control = args[:skip_service_control] if args.key?(:skip_service_control)
end
end
# `Visibility` defines restrictions for the visibility of service
# elements. Restrictions are specified using visibility labels
@@ -4844,9 +4799,46 @@
end
# Update properties of this object
def update!(**args)
@rules = args[:rules] if args.key?(:rules)
+ end
+ end
+
+ # A visibility rule provides visibility configuration for an individual API
+ # element.
+ class VisibilityRule
+ include Google::Apis::Core::Hashable
+
+ # A comma-separated list of visibility labels that apply to the `selector`.
+ # Any of the listed labels can be used to grant the visibility.
+ # If a rule has multiple labels, removing one of the labels but not all of
+ # them can break clients.
+ # Example:
+ # visibility:
+ # rules:
+ # - selector: google.calendar.Calendar.EnhancedSearch
+ # restriction: GOOGLE_INTERNAL, TRUSTED_TESTER
+ # Removing GOOGLE_INTERNAL from this restriction will break clients that
+ # rely on this method and only had access to it through GOOGLE_INTERNAL.
+ # Corresponds to the JSON property `restriction`
+ # @return [String]
+ attr_accessor :restriction
+
+ # Selects methods, messages, fields, enums, etc. to which this rule applies.
+ # Refer to selector for syntax details.
+ # Corresponds to the JSON property `selector`
+ # @return [String]
+ attr_accessor :selector
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @restriction = args[:restriction] if args.key?(:restriction)
+ @selector = args[:selector] if args.key?(:selector)
end
end
end
end
end