class Google::Cloud::Workflows::V1beta::Workflows::Client

Client for the Workflows service.

Workflows is used to deploy and execute workflow programs. Workflows makes sure the program executes reliably, despite hardware and networking interruptions.

Attributes

operations_client[R]

Get the associated client for long-running operations.

@return [::Google::Cloud::Workflows::V1beta::Workflows::Operations]

workflows_stub[R]

@private

Public Class Methods

configure() { |configure| ... } click to toggle source

Configure the Workflows Client class.

See {::Google::Cloud::Workflows::V1beta::Workflows::Client::Configuration} for a description of the configuration fields.

@example

# Modify the configuration for all Workflows clients
::Google::Cloud::Workflows::V1beta::Workflows::Client.configure do |config|
  config.timeout = 10.0
end

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 58
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "Workflows", "V1beta"]
    parent_config = while namespace.any?
                      parent_name = namespace.join "::"
                      parent_const = const_get parent_name
                      break parent_const.configure if parent_const.respond_to? :configure
                      namespace.pop
                    end
    default_config = Client::Configuration.new parent_config

    default_config
  end
  yield @configure if block_given?
  @configure
end
new() { |config| ... } click to toggle source

Create a new Workflows client object.

@example

# Create a client using the default configuration
client = ::Google::Cloud::Workflows::V1beta::Workflows::Client.new

# Create a client using a custom configuration
client = ::Google::Cloud::Workflows::V1beta::Workflows::Client.new do |config|
  config.timeout = 10.0
end

@yield [config] Configure the Workflows client. @yieldparam config [Client::Configuration]

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 111
def initialize
  # These require statements are intentionally placed here to initialize
  # the gRPC module only when it's required.
  # See https://github.com/googleapis/toolkit/issues/446
  require "gapic/grpc"
  require "google/cloud/workflows/v1beta/workflows_services_pb"

  # Create the configuration object
  @config = Configuration.new Client.configure

  # Yield the configuration if needed
  yield @config if block_given?

  # Create credentials
  credentials = @config.credentials
  # Use self-signed JWT if the endpoint is unchanged from default,
  # but only if the default endpoint does not have a region prefix.
  enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
                           !@config.endpoint.split(".").first.include?("-")
  credentials ||= Credentials.default scope: @config.scope,
                                      enable_self_signed_jwt: enable_self_signed_jwt
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
    credentials = Credentials.new credentials, scope: @config.scope
  end
  @quota_project_id = @config.quota_project
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id

  @operations_client = Operations.new do |config|
    config.credentials = credentials
    config.endpoint = @config.endpoint
  end

  @workflows_stub = ::Gapic::ServiceStub.new(
    ::Google::Cloud::Workflows::V1beta::Workflows::Stub,
    credentials:  credentials,
    endpoint:     @config.endpoint,
    channel_args: @config.channel_args,
    interceptors: @config.interceptors
  )
end

Public Instance Methods

configure() { |config| ... } click to toggle source

Configure the Workflows Client instance.

The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on {Client.configure}.

See {::Google::Cloud::Workflows::V1beta::Workflows::Client::Configuration} for a description of the configuration fields.

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 90
def configure
  yield @config if block_given?
  @config
end
create_workflow(request, options = nil) { |response, operation| ... } click to toggle source

Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation will return [ALREADY_EXISTS] error.

@overload create_workflow(request, options = nil)

Pass arguments to `create_workflow` via a request object, either of type
{::Google::Cloud::Workflows::V1beta::CreateWorkflowRequest} or an equivalent Hash.

@param request [::Google::Cloud::Workflows::V1beta::CreateWorkflowRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload create_workflow(parent: nil, workflow: nil, workflow_id: nil)

Pass arguments to `create_workflow` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param parent [::String]
  Required. Project and location in which the workflow should be created.
  Format:  projects/\\{project}/locations/\\{location}
@param workflow [::Google::Cloud::Workflows::V1beta::Workflow, ::Hash]
  Required. Workflow to be created.
@param workflow_id [::String]
  Required. The ID of the workflow to be created. It has to fulfill the
  following requirements:

  * Must contain only letters, numbers, underscores and hyphens.
  * Must start with a letter.
  * Must be between 1-64 characters.
  * Must end with a number or a letter.
  * Must be unique within the customer project and location.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::Operation]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 362
def create_workflow request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Workflows::V1beta::CreateWorkflowRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.create_workflow.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::Workflows::V1beta::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "parent" => request.parent
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.create_workflow.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.create_workflow.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @workflows_stub.call_rpc :create_workflow, request, options: options do |response, operation|
    response = ::Gapic::Operation.new response, @operations_client, options: options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
delete_workflow(request, options = nil) { |response, operation| ... } click to toggle source

Deletes a workflow with the specified name. This method also cancels and deletes all running executions of the workflow.

@overload delete_workflow(request, options = nil)

Pass arguments to `delete_workflow` via a request object, either of type
{::Google::Cloud::Workflows::V1beta::DeleteWorkflowRequest} or an equivalent Hash.

@param request [::Google::Cloud::Workflows::V1beta::DeleteWorkflowRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload delete_workflow(name: nil)

Pass arguments to `delete_workflow` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Required. Name of the workflow to be deleted.
  Format: projects/\\{project}/locations/\\{location}/workflows/\\{workflow}

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::Operation]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 434
def delete_workflow request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Workflows::V1beta::DeleteWorkflowRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.delete_workflow.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::Workflows::V1beta::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.delete_workflow.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.delete_workflow.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @workflows_stub.call_rpc :delete_workflow, request, options: options do |response, operation|
    response = ::Gapic::Operation.new response, @operations_client, options: options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
get_workflow(request, options = nil) { |response, operation| ... } click to toggle source

Gets details of a single Workflow.

@overload get_workflow(request, options = nil)

Pass arguments to `get_workflow` via a request object, either of type
{::Google::Cloud::Workflows::V1beta::GetWorkflowRequest} or an equivalent Hash.

@param request [::Google::Cloud::Workflows::V1beta::GetWorkflowRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload get_workflow(name: nil)

Pass arguments to `get_workflow` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Required. Name of the workflow which information should be retrieved.
  Format: projects/\\{project}/locations/\\{location}/workflows/\\{workflow}

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Workflows::V1beta::Workflow] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::Workflows::V1beta::Workflow]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 280
def get_workflow request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Workflows::V1beta::GetWorkflowRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.get_workflow.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::Workflows::V1beta::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.get_workflow.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_workflow.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @workflows_stub.call_rpc :get_workflow, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
list_workflows(request, options = nil) { |response, operation| ... } click to toggle source

Lists Workflows in a given project and location. The default order is not specified.

@overload list_workflows(request, options = nil)

Pass arguments to `list_workflows` via a request object, either of type
{::Google::Cloud::Workflows::V1beta::ListWorkflowsRequest} or an equivalent Hash.

@param request [::Google::Cloud::Workflows::V1beta::ListWorkflowsRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload list_workflows(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil)

Pass arguments to `list_workflows` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param parent [::String]
  Required. Project and location from which the workflows should be listed.
  Format: projects/\\{project}/locations/\\{location}
@param page_size [::Integer]
  Maximum number of workflows to return per call. The service may return
  fewer than this value. If the value is not specified, a default value of
  500 will be used. The maximum permitted value is 1000 and values greater
  than 1000 will be coerced down to 1000.
@param page_token [::String]
  A page token, received from a previous `ListWorkflows` call.
  Provide this to retrieve the subsequent page.

  When paginating, all other parameters provided to `ListWorkflows` must
  match the call that provided the page token.
@param filter [::String]
  Filter to restrict results to specific workflows.
@param order_by [::String]
  Comma-separated list of fields that that specify the order of the results.
  Default sorting order for a field is ascending. To specify descending order
  for a field, append a " desc" suffix.
  If not specified, the results will be returned in an unspecified order.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Workflows::V1beta::Workflow>] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::PagedEnumerable<::Google::Cloud::Workflows::V1beta::Workflow>]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 210
def list_workflows request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Workflows::V1beta::ListWorkflowsRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.list_workflows.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::Workflows::V1beta::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "parent" => request.parent
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.list_workflows.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_workflows.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @workflows_stub.call_rpc :list_workflows, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @workflows_stub, :list_workflows, request, response, operation, options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
update_workflow(request, options = nil) { |response, operation| ... } click to toggle source

Updates an existing workflow. Running this method has no impact on already running executions of the workflow. A new revision of the workflow may be created as a result of a successful update operation. In that case, such revision will be used in new workflow executions.

@overload update_workflow(request, options = nil)

Pass arguments to `update_workflow` via a request object, either of type
{::Google::Cloud::Workflows::V1beta::UpdateWorkflowRequest} or an equivalent Hash.

@param request [::Google::Cloud::Workflows::V1beta::UpdateWorkflowRequest, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload update_workflow(workflow: nil, update_mask: nil)

Pass arguments to `update_workflow` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param workflow [::Google::Cloud::Workflows::V1beta::Workflow, ::Hash]
  Required. Workflow to be updated.
@param update_mask [::Google::Protobuf::FieldMask, ::Hash]
  List of fields to be updated. If not present, the entire workflow
  will be updated.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::Operation] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::Operation]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/workflows/v1beta/workflows/client.rb, line 510
def update_workflow request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Workflows::V1beta::UpdateWorkflowRequest

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.update_workflow.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::Workflows::V1beta::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "workflow.name" => request.workflow.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.update_workflow.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.update_workflow.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @workflows_stub.call_rpc :update_workflow, request, options: options do |response, operation|
    response = ::Gapic::Operation.new response, @operations_client, options: options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end