class Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client

Client for the DatastoreAdmin service.

Google Cloud Datastore Admin API

The Datastore Admin API provides several admin services for Cloud Datastore.


## Concepts

Project, namespace, kind, and entity as defined in the Google Cloud Datastore API.

Operation: An Operation represents work being performed in the background.

EntityFilter: Allows specifying a subset of entities in a project. This is specified as a combination of kinds and namespaces (either or both of which may be all).


## Services

# Export/Import

The Export/Import service provides the ability to copy all or a subset of entities to/from Google Cloud Storage.

Exported data may be imported into Cloud Datastore for any Google Cloud Platform project. It is not restricted to the export source project. It is possible to export from one project and then import into another.

Exported data can also be loaded into Google BigQuery for analysis.

Exports and imports are performed asynchronously. An Operation resource is created for each export/import. The state (including any errors encountered) of the export/import may be queried via the Operation resource.

# Index

The index service manages Cloud Datastore composite indexes.

Index creation and deletion are performed asynchronously. An Operation resource is created for each such asynchronous operation. The state of the operation (including any errors encountered) may be queried via the Operation resource.

# Operation

The Operations collection provides a record of actions performed for the specified project (including any operations in progress). Operations are not created directly but through calls on other collections or resources.

An operation that is not yet done may be cancelled. The request to cancel is asynchronous and the operation may continue to run for some time after the request to cancel is made.

An operation that is done may be deleted so that it is no longer listed as part of the Operation collection.

ListOperations returns all pending operations, but not completed operations.

Operations are created by service DatastoreAdmin, but are accessed via service google.longrunning.Operations.

Attributes

datastore_admin_stub[R]

@private

operations_client[R]

Get the associated client for long-running operations.

@return [::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Operations]

Public Class Methods

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

Configure the DatastoreAdmin Client class.

See {::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client::Configuration} for a description of the configuration fields.

@example

# Modify the configuration for all DatastoreAdmin clients
::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::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/datastore/admin/v1/datastore_admin/client.rb, line 115
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "Datastore", "Admin", "V1"]
    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.rpcs.export_entities.timeout = 60.0

    default_config.rpcs.import_entities.timeout = 60.0

    default_config.rpcs.create_index.timeout = 60.0

    default_config.rpcs.delete_index.timeout = 60.0

    default_config.rpcs.get_index.timeout = 60.0
    default_config.rpcs.get_index.retry_policy = {
      initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 4]
    }

    default_config.rpcs.list_indexes.timeout = 60.0
    default_config.rpcs.list_indexes.retry_policy = {
      initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14, 4]
    }

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

Create a new DatastoreAdmin client object.

@example

# Create a client using the default configuration
client = ::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client.new

# Create a client using a custom configuration
client = ::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client.new do |config|
  config.timeout = 10.0
end

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

# File lib/google/cloud/datastore/admin/v1/datastore_admin/client.rb, line 186
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/datastore/admin/v1/datastore_admin_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

  @datastore_admin_stub = ::Gapic::ServiceStub.new(
    ::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::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 DatastoreAdmin 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::Datastore::Admin::V1::DatastoreAdmin::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/datastore/admin/v1/datastore_admin/client.rb, line 165
def configure
  yield @config if block_given?
  @config
end
create_index(request, options = nil) { |response, operation| ... } click to toggle source

Creates the specified index. A newly created index's initial state is `CREATING`. On completion of the returned {::Google::Longrunning::Operation google.longrunning.Operation}, the state will be `READY`. If the index already exists, the call will return an `ALREADY_EXISTS` status.

During index creation, the process could result in an error, in which case the index will move to the `ERROR` state. The process can be recovered by fixing the data that caused the error, removing the index with {::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client#delete_index delete}, then re-creating the index with [create] [google.datastore.admin.v1.DatastoreAdmin.CreateIndex].

Indexes with a single property cannot be created.

@overload create_index(request, options = nil)

Pass arguments to `create_index` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::CreateIndexRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::CreateIndexRequest, ::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_index(project_id: nil, index: nil)

Pass arguments to `create_index` 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 project_id [::String]
  Project ID against which to make the request.
@param index [::Google::Cloud::Datastore::Admin::V1::Index, ::Hash]
  The index to create. The name and state fields are output only and will be
  ignored. Single property indexes cannot be created or deleted.

@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/datastore/admin/v1/datastore_admin/client.rb, line 474
def create_index request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::CreateIndexRequest

  # 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_index.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id
  }
  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_index.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.create_index.retry_policy

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

  @datastore_admin_stub.call_rpc :create_index, 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_index(request, options = nil) { |response, operation| ... } click to toggle source

Deletes an existing index. An index can only be deleted if it is in a `READY` or `ERROR` state. On successful execution of the request, the index will be in a `DELETING` {::Google::Cloud::Datastore::Admin::V1::Index::State state}. And on completion of the returned {::Google::Longrunning::Operation google.longrunning.Operation}, the index will be removed.

During index deletion, the process could result in an error, in which case the index will move to the `ERROR` state. The process can be recovered by fixing the data that caused the error, followed by calling {::Google::Cloud::Datastore::Admin::V1::DatastoreAdmin::Client#delete_index delete} again.

@overload delete_index(request, options = nil)

Pass arguments to `delete_index` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::DeleteIndexRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::DeleteIndexRequest, ::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_index(project_id: nil, index_id: nil)

Pass arguments to `delete_index` 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 project_id [::String]
  Project ID against which to make the request.
@param index_id [::String]
  The resource ID of the index to delete.

@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/datastore/admin/v1/datastore_admin/client.rb, line 554
def delete_index request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::DeleteIndexRequest

  # 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_index.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id,
    "index_id" => request.index_id
  }
  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_index.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.delete_index.retry_policy

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

  @datastore_admin_stub.call_rpc :delete_index, 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
export_entities(request, options = nil) { |response, operation| ... } click to toggle source

Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage. Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.

@overload export_entities(request, options = nil)

Pass arguments to `export_entities` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::ExportEntitiesRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::ExportEntitiesRequest, ::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 export_entities(project_id: nil, labels: nil, entity_filter: nil, output_url_prefix: nil)

Pass arguments to `export_entities` 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 project_id [::String]
  Required. Project ID against which to make the request.
@param labels [::Hash{::String => ::String}]
  Client-assigned labels.
@param entity_filter [::Google::Cloud::Datastore::Admin::V1::EntityFilter, ::Hash]
  Description of what data from the project is included in the export.
@param output_url_prefix [::String]
  Required. Location for the export metadata and data files.

  The full resource URL of the external storage location. Currently, only
  Google Cloud Storage is supported. So output_url_prefix should be of the
  form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the
  name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional Cloud
  Storage namespace path (this is not a Cloud Datastore namespace). For more
  information about Cloud Storage namespace paths, see
  [Object name
  considerations](https://cloud.google.com/storage/docs/naming#object-considerations).

  The resulting files will be nested deeper than the specified URL prefix.
  The final output URL will be provided in the
  {::Google::Cloud::Datastore::Admin::V1::ExportEntitiesResponse#output_url google.datastore.admin.v1.ExportEntitiesResponse.output_url} field. That
  value should be used for subsequent ImportEntities operations.

  By nesting the data files deeper, the same Cloud Storage bucket can be used
  in multiple ExportEntities operations without conflict.

@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/datastore/admin/v1/datastore_admin/client.rb, line 295
def export_entities request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::ExportEntitiesRequest

  # 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.export_entities.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id
  }
  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.export_entities.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.export_entities.retry_policy

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

  @datastore_admin_stub.call_rpc :export_entities, 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_index(request, options = nil) { |response, operation| ... } click to toggle source

Gets an index.

@overload get_index(request, options = nil)

Pass arguments to `get_index` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::GetIndexRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::GetIndexRequest, ::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_index(project_id: nil, index_id: nil)

Pass arguments to `get_index` 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 project_id [::String]
  Project ID against which to make the request.
@param index_id [::String]
  The resource ID of the index to get.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::Datastore::Admin::V1::Index] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::Datastore::Admin::V1::Index]

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

# File lib/google/cloud/datastore/admin/v1/datastore_admin/client.rb, line 626
def get_index request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::GetIndexRequest

  # 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_index.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id,
    "index_id" => request.index_id
  }
  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_index.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_index.retry_policy

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

  @datastore_admin_stub.call_rpc :get_index, 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
import_entities(request, options = nil) { |response, operation| ... } click to toggle source

Imports entities into Google Cloud Datastore. Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.

@overload import_entities(request, options = nil)

Pass arguments to `import_entities` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::ImportEntitiesRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::ImportEntitiesRequest, ::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 import_entities(project_id: nil, labels: nil, input_url: nil, entity_filter: nil)

Pass arguments to `import_entities` 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 project_id [::String]
  Required. Project ID against which to make the request.
@param labels [::Hash{::String => ::String}]
  Client-assigned labels.
@param input_url [::String]
  Required. The full resource URL of the external storage location. Currently, only
  Google Cloud Storage is supported. So input_url should be of the form:
  `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE`, where
  `BUCKET_NAME` is the name of the Cloud Storage bucket, `NAMESPACE_PATH` is
  an optional Cloud Storage namespace path (this is not a Cloud Datastore
  namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file written
  by the ExportEntities operation. For more information about Cloud Storage
  namespace paths, see
  [Object name
  considerations](https://cloud.google.com/storage/docs/naming#object-considerations).

  For more information, see
  {::Google::Cloud::Datastore::Admin::V1::ExportEntitiesResponse#output_url google.datastore.admin.v1.ExportEntitiesResponse.output_url}.
@param entity_filter [::Google::Cloud::Datastore::Admin::V1::EntityFilter, ::Hash]
  Optionally specify which kinds/namespaces are to be imported. If provided,
  the list must be a subset of the EntityFilter used in creating the export,
  otherwise a FAILED_PRECONDITION error will be returned. If no filter is
  specified then all entities from the export are imported.

@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/datastore/admin/v1/datastore_admin/client.rb, line 389
def import_entities request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::ImportEntitiesRequest

  # 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.import_entities.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id
  }
  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.import_entities.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.import_entities.retry_policy

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

  @datastore_admin_stub.call_rpc :import_entities, 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
list_indexes(request, options = nil) { |response, operation| ... } click to toggle source

Lists the indexes that match the specified filters. Datastore uses an eventually consistent query to fetch the list of indexes and may occasionally return stale results.

@overload list_indexes(request, options = nil)

Pass arguments to `list_indexes` via a request object, either of type
{::Google::Cloud::Datastore::Admin::V1::ListIndexesRequest} or an equivalent Hash.

@param request [::Google::Cloud::Datastore::Admin::V1::ListIndexesRequest, ::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_indexes(project_id: nil, filter: nil, page_size: nil, page_token: nil)

Pass arguments to `list_indexes` 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 project_id [::String]
  Project ID against which to make the request.
@param filter [::String]
@param page_size [::Integer]
  The maximum number of items to return.  If zero, then all results will be
  returned.
@param page_token [::String]
  The next_page_token value returned from a previous List request, if any.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::Datastore::Admin::V1::Index>] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::PagedEnumerable<::Google::Cloud::Datastore::Admin::V1::Index>]

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

# File lib/google/cloud/datastore/admin/v1/datastore_admin/client.rb, line 703
def list_indexes request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Datastore::Admin::V1::ListIndexesRequest

  # 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_indexes.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::Datastore::Admin::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "project_id" => request.project_id
  }
  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_indexes.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_indexes.retry_policy

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

  @datastore_admin_stub.call_rpc :list_indexes, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @datastore_admin_stub, :list_indexes, 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