class Google::Apis::ServicecontrolV1::ServiceControlService

Service Control API

Provides admission control and telemetry reporting for services integrated

with Service Infrastructure.

@example

require 'google/apis/servicecontrol_v1'

Servicecontrol = Google::Apis::ServicecontrolV1 # Alias the module
service = Servicecontrol::ServiceControlService.new

@see cloud.google.com/service-control/

Attributes

key[RW]

@return [String]

API key. Your API key identifies your project and provides you with API access,
quota, and reports. Required unless you provide an OAuth 2.0 token.
quota_user[RW]

@return [String]

Available to use for quota purposes for server-side applications. Can be any
arbitrary string assigned to a user, but should not exceed 40 characters.

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/google/apis/servicecontrol_v1/service.rb, line 46
def initialize
  super('https://servicecontrol.googleapis.com/', '',
        client_name: 'google-apis-servicecontrol_v1',
        client_version: Google::Apis::ServicecontrolV1::GEM_VERSION)
  @batch_path = 'batch'
end

Public Instance Methods

allocate_service_quota(service_name, allocate_quota_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) click to toggle source

Attempts to allocate quota for the specified consumer. It should be called before the operation is executed. This method requires the `servicemanagement. services.quota` permission on the specified service. For more information, see [Cloud IAM](cloud.google.com/iam). NOTE: The client must fail- open on server errors `INTERNAL`, `UNKNOWN`, `DEADLINE_EXCEEDED`, and ` UNAVAILABLE`. To ensure system reliability, the server may inject these errors to prohibit any hard dependency on the quota functionality. @param [String] service_name

Name of the service as specified in the service configuration. For example, `"
pubsub.googleapis.com"`. See google.api.Service for the definition of a
service name.

@param [Google::Apis::ServicecontrolV1::AllocateQuotaRequest] allocate_quota_request_object @param [String] fields

Selector specifying which fields to include in a partial response.

@param [String] quota_user

Available to use for quota purposes for server-side applications. Can be any
arbitrary string assigned to a user, but should not exceed 40 characters.

@param [Google::Apis::RequestOptions] options

Request-specific options

@yield [result, err] Result & error if block supplied @yieldparam result [Google::Apis::ServicecontrolV1::AllocateQuotaResponse] parsed result object @yieldparam err [StandardError] error object if request failed

@return [Google::Apis::ServicecontrolV1::AllocateQuotaResponse]

@raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification @raise [Google::Apis::AuthorizationError] Authorization is required

# File lib/google/apis/servicecontrol_v1/service.rb, line 82
def allocate_service_quota(service_name, allocate_quota_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/services/{serviceName}:allocateQuota', options)
  command.request_representation = Google::Apis::ServicecontrolV1::AllocateQuotaRequest::Representation
  command.request_object = allocate_quota_request_object
  command.response_representation = Google::Apis::ServicecontrolV1::AllocateQuotaResponse::Representation
  command.response_class = Google::Apis::ServicecontrolV1::AllocateQuotaResponse
  command.params['serviceName'] = service_name unless service_name.nil?
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end
check_service(service_name, check_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) click to toggle source

Checks whether an operation on a service should be allowed to proceed based on the configuration of the service and related policies. It must be called before the operation is executed. If feasible, the client should cache the check results and reuse them for 60 seconds. In case of any server errors, the client should rely on the cached results for much longer time to avoid outage. WARNING: There is general 60s delay for the configuration and policy propagation, therefore callers MUST NOT depend on the `Check` method having the latest policy information. NOTE: the CheckRequest has the size limit (wire- format byte size) of 1MB. This method requires the `servicemanagement.services. check` permission on the specified service. For more information, see [Cloud IAM](cloud.google.com/iam). @param [String] service_name

The service name as specified in its service configuration. For example, `"
pubsub.googleapis.com"`. See [google.api.Service](https://cloud.google.com/
service-management/reference/rpc/google.api#google.api.Service) for the
definition of a service name.

@param [Google::Apis::ServicecontrolV1::CheckRequest] check_request_object @param [String] fields

Selector specifying which fields to include in a partial response.

@param [String] quota_user

Available to use for quota purposes for server-side applications. Can be any
arbitrary string assigned to a user, but should not exceed 40 characters.

@param [Google::Apis::RequestOptions] options

Request-specific options

@yield [result, err] Result & error if block supplied @yieldparam result [Google::Apis::ServicecontrolV1::CheckResponse] parsed result object @yieldparam err [StandardError] error object if request failed

@return [Google::Apis::ServicecontrolV1::CheckResponse]

@raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification @raise [Google::Apis::AuthorizationError] Authorization is required

# File lib/google/apis/servicecontrol_v1/service.rb, line 128
def check_service(service_name, check_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/services/{serviceName}:check', options)
  command.request_representation = Google::Apis::ServicecontrolV1::CheckRequest::Representation
  command.request_object = check_request_object
  command.response_representation = Google::Apis::ServicecontrolV1::CheckResponse::Representation
  command.response_class = Google::Apis::ServicecontrolV1::CheckResponse
  command.params['serviceName'] = service_name unless service_name.nil?
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end
report_service(service_name, report_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) click to toggle source

Reports operation results to Google Service Control, such as logs and metrics. It should be called after an operation is completed. If feasible, the client should aggregate reporting data for up to 5 seconds to reduce API traffic. Limiting aggregation to 5 seconds is to reduce data loss during client crashes. Clients should carefully choose the aggregation time window to avoid data loss risk more than 0.01% for business and compliance reasons. NOTE: the ReportRequest has the size limit (wire-format byte size) of 1MB. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Google Cloud IAM](cloud.google.com/ iam). @param [String] service_name

The service name as specified in its service configuration. For example, `"
pubsub.googleapis.com"`. See [google.api.Service](https://cloud.google.com/
service-management/reference/rpc/google.api#google.api.Service) for the
definition of a service name.

@param [Google::Apis::ServicecontrolV1::ReportRequest] report_request_object @param [String] fields

Selector specifying which fields to include in a partial response.

@param [String] quota_user

Available to use for quota purposes for server-side applications. Can be any
arbitrary string assigned to a user, but should not exceed 40 characters.

@param [Google::Apis::RequestOptions] options

Request-specific options

@yield [result, err] Result & error if block supplied @yieldparam result [Google::Apis::ServicecontrolV1::ReportResponse] parsed result object @yieldparam err [StandardError] error object if request failed

@return [Google::Apis::ServicecontrolV1::ReportResponse]

@raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification @raise [Google::Apis::AuthorizationError] Authorization is required

# File lib/google/apis/servicecontrol_v1/service.rb, line 173
def report_service(service_name, report_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
  command = make_simple_command(:post, 'v1/services/{serviceName}:report', options)
  command.request_representation = Google::Apis::ServicecontrolV1::ReportRequest::Representation
  command.request_object = report_request_object
  command.response_representation = Google::Apis::ServicecontrolV1::ReportResponse::Representation
  command.response_class = Google::Apis::ServicecontrolV1::ReportResponse
  command.params['serviceName'] = service_name unless service_name.nil?
  command.query['fields'] = fields unless fields.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
  execute_or_queue_command(command, &block)
end

Protected Instance Methods

apply_command_defaults(command) click to toggle source
# File lib/google/apis/servicecontrol_v1/service.rb, line 187
def apply_command_defaults(command)
  command.query['key'] = key unless key.nil?
  command.query['quotaUser'] = quota_user unless quota_user.nil?
end