diff --git a/google-cloud-storage-control-v2/.owlbot-manifest.json b/google-cloud-storage-control-v2/.owlbot-manifest.json index efd23986e3e8..34bae834e8d7 100644 --- a/google-cloud-storage-control-v2/.owlbot-manifest.json +++ b/google-cloud-storage-control-v2/.owlbot-manifest.json @@ -87,6 +87,7 @@ "snippets/storage_control/update_organization_intelligence_config.rb", "snippets/storage_control/update_project_intelligence_config.rb", "snippets/storage_control/update_rapid_cache.rb", + "snippets/storage_control/view_object_full_context.rb", "test/google/cloud/storage/control/v2/storage_control_operations_test.rb", "test/google/cloud/storage/control/v2/storage_control_paths_test.rb", "test/google/cloud/storage/control/v2/storage_control_rest_test.rb", diff --git a/google-cloud-storage-control-v2/gapic_metadata.json b/google-cloud-storage-control-v2/gapic_metadata.json index f7196fd42cd3..fd2ac660ee0a 100644 --- a/google-cloud-storage-control-v2/gapic_metadata.json +++ b/google-cloud-storage-control-v2/gapic_metadata.json @@ -194,6 +194,11 @@ "methods": [ "list_intelligence_finding_revisions" ] + }, + "ViewObjectFullContext": { + "methods": [ + "view_object_full_context" + ] } } } diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb index a53eda817951..7aa9d32ee9e6 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/client.rb @@ -4041,6 +4041,108 @@ def list_intelligence_finding_revisions request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Retrieves the full content of an object context, including its key, value, + # and any associated extended data for a given context key. + # + # Object contexts can optionally contain extended data. If an object context + # contains extended data, the metadata payload structure will contain only + # its type URL. To retrieve the full extended data, call this method. + # + # Returns the complete representation of the context as an + # {::Google::Cloud::Storage::Control::V2::ObjectFullContext `ObjectFullContext`}. + # + # @overload view_object_full_context(request, options = nil) + # Pass arguments to `view_object_full_context` via a request object, either of type + # {::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest, ::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 view_object_full_context(generation: nil, context_key: nil, name: nil) + # Pass arguments to `view_object_full_context` 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 generation [::Integer] + # Optional. If present, selects a specific revision of this object (as + # opposed to the latest version, the default). + # @param context_key [::String] + # Required. The key of the object context to retrieve. + # @param name [::String] + # Required. The name of the object. + # Format: `projects/{project}/buckets/{bucket}/objects/{object}` + # + # @yield [response, operation] Access the result along with the RPC operation + # @yieldparam response [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # @yieldparam operation [::GRPC::ActiveCall::Operation] + # + # @return [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # + # @raise [::Google::Cloud::Error] if the RPC is aborted. + # + # @example Basic example + # require "google/cloud/storage/control/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new + # + # # Call the view_object_full_context method. + # result = client.view_object_full_context request + # + # # The returned object is of type Google::Cloud::Storage::Control::V2::ObjectFullContext. + # p result + # + def view_object_full_context request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest + + # 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.view_object_full_context.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Storage::Control::V2::VERSION + metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + header_params = {} + if request.name + regex_match = %r{^(?projects/[^/]+/buckets/[^/]+)(?:/(?<__wildcard__>.*))?$}.match request.name + if regex_match + header_params["bucket"] = regex_match["bucket".to_s] + end + end + + request_params_header = URI.encode_www_form header_params + metadata[:"x-goog-request-params"] ||= request_params_header + + options.apply_defaults timeout: @config.rpcs.view_object_full_context.timeout, + metadata: metadata, + retry_policy: @config.rpcs.view_object_full_context.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @storage_control_stub.call_rpc :view_object_full_context, request, options: options do |response, operation| + yield response, operation if block_given? + end + rescue ::GRPC::BadStatus => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the StorageControl API. # @@ -4411,6 +4513,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :list_intelligence_finding_revisions + ## + # RPC-specific configuration for `view_object_full_context` + # @return [::Gapic::Config::Method] + # + attr_reader :view_object_full_context # @private def initialize parent_rpcs = nil @@ -4488,6 +4595,8 @@ def initialize parent_rpcs = nil @get_intelligence_finding_revision = ::Gapic::Config::Method.new get_intelligence_finding_revision_config list_intelligence_finding_revisions_config = parent_rpcs.list_intelligence_finding_revisions if parent_rpcs.respond_to? :list_intelligence_finding_revisions @list_intelligence_finding_revisions = ::Gapic::Config::Method.new list_intelligence_finding_revisions_config + view_object_full_context_config = parent_rpcs.view_object_full_context if parent_rpcs.respond_to? :view_object_full_context + @view_object_full_context = ::Gapic::Config::Method.new view_object_full_context_config yield self if block_given? end diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/paths.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/paths.rb index f1ab760fb1a8..f91aa33b32cc 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/paths.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/paths.rb @@ -208,6 +208,25 @@ def managed_folder_path project:, bucket:, managed_folder: "projects/#{project}/buckets/#{bucket}/managedFolders/#{managed_folder}" end + ## + # Create a fully-qualified Object resource string. + # + # The resource will be in the following format: + # + # `projects/{project}/buckets/{bucket}/objects/{object}` + # + # @param project [String] + # @param bucket [String] + # @param object [String] + # + # @return [::String] + def object_path project:, bucket:, object: + raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/" + raise ::ArgumentError, "bucket cannot contain /" if bucket.to_s.include? "/" + + "projects/#{project}/buckets/#{bucket}/objects/#{object}" + end + ## # Create a fully-qualified RapidCache resource string. # diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/client.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/client.rb index 3cf27c889d57..7eb3ce696745 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/client.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/client.rb @@ -1927,6 +1927,98 @@ def list_intelligence_finding_revisions request, options = nil raise ::Google::Cloud::Error.from_error(e) end + ## + # Retrieves the full content of an object context, including its key, value, + # and any associated extended data for a given context key. + # + # Object contexts can optionally contain extended data. If an object context + # contains extended data, the metadata payload structure will contain only + # its type URL. To retrieve the full extended data, call this method. + # + # Returns the complete representation of the context as an + # {::Google::Cloud::Storage::Control::V2::ObjectFullContext `ObjectFullContext`}. + # + # @overload view_object_full_context(request, options = nil) + # Pass arguments to `view_object_full_context` via a request object, either of type + # {::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest} or an equivalent Hash. + # + # @param request [::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest, ::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 view_object_full_context(generation: nil, context_key: nil, name: nil) + # Pass arguments to `view_object_full_context` 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 generation [::Integer] + # Optional. If present, selects a specific revision of this object (as + # opposed to the latest version, the default). + # @param context_key [::String] + # Required. The key of the object context to retrieve. + # @param name [::String] + # Required. The name of the object. + # Format: `projects/{project}/buckets/{bucket}/objects/{object}` + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # + # @raise [::Google::Cloud::Error] if the REST call is aborted. + # + # @example Basic example + # require "google/cloud/storage/control/v2" + # + # # Create a client object. The client can be reused for multiple calls. + # client = Google::Cloud::Storage::Control::V2::StorageControl::Rest::Client.new + # + # # Create a request. To set request fields, pass in keyword arguments. + # request = Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new + # + # # Call the view_object_full_context method. + # result = client.view_object_full_context request + # + # # The returned object is of type Google::Cloud::Storage::Control::V2::ObjectFullContext. + # p result + # + def view_object_full_context request, options = nil + raise ::ArgumentError, "request must be provided" if request.nil? + + request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest + + # 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 + call_metadata = @config.rpcs.view_object_full_context.metadata.to_h + + # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers + call_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::Storage::Control::V2::VERSION, + transports_version_send: [:rest] + + call_metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? + call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id + + options.apply_defaults timeout: @config.rpcs.view_object_full_context.timeout, + metadata: call_metadata, + retry_policy: @config.rpcs.view_object_full_context.retry_policy + + options.apply_defaults timeout: @config.timeout, + metadata: @config.metadata, + retry_policy: @config.retry_policy + + @storage_control_stub.view_object_full_context request, options do |result, operation| + yield result, operation if block_given? + end + rescue ::Gapic::Rest::Error => e + raise ::Google::Cloud::Error.from_error(e) + end + ## # Configuration class for the StorageControl REST API. # @@ -2165,6 +2257,11 @@ class Rpcs # @return [::Gapic::Config::Method] # attr_reader :list_intelligence_finding_revisions + ## + # RPC-specific configuration for `view_object_full_context` + # @return [::Gapic::Config::Method] + # + attr_reader :view_object_full_context # @private def initialize parent_rpcs = nil @@ -2204,6 +2301,8 @@ def initialize parent_rpcs = nil @get_intelligence_finding_revision = ::Gapic::Config::Method.new get_intelligence_finding_revision_config list_intelligence_finding_revisions_config = parent_rpcs.list_intelligence_finding_revisions if parent_rpcs.respond_to? :list_intelligence_finding_revisions @list_intelligence_finding_revisions = ::Gapic::Config::Method.new list_intelligence_finding_revisions_config + view_object_full_context_config = parent_rpcs.view_object_full_context if parent_rpcs.respond_to? :view_object_full_context + @view_object_full_context = ::Gapic::Config::Method.new view_object_full_context_config yield self if block_given? end diff --git a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/service_stub.rb b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/service_stub.rb index e090e7fd7e00..7af3692ba2fe 100644 --- a/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/service_stub.rb +++ b/google-cloud-storage-control-v2/lib/google/cloud/storage/control/v2/storage_control/rest/service_stub.rb @@ -794,6 +794,46 @@ def list_intelligence_finding_revisions request_pb, options = nil end end + ## + # Baseline implementation for the view_object_full_context REST call + # + # @param request_pb [::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest] + # A request object representing the call parameters. Required. + # @param options [::Gapic::CallOptions] + # Overrides the default settings for this call, e.g, timeout, retries etc. Optional. + # + # @yield [result, operation] Access the result along with the TransportOperation object + # @yieldparam result [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # @yieldparam operation [::Gapic::Rest::TransportOperation] + # + # @return [::Google::Cloud::Storage::Control::V2::ObjectFullContext] + # A result object deserialized from the server's reply + def view_object_full_context request_pb, options = nil + raise ::ArgumentError, "request must be provided" if request_pb.nil? + + verb, uri, query_string_params, body = ServiceStub.transcode_view_object_full_context_request request_pb + query_string_params = if query_string_params.any? + query_string_params.to_h { |p| p.split "=", 2 } + else + {} + end + + response = @client_stub.make_http_request( + verb, + uri: uri, + body: body || "", + params: query_string_params, + method_name: "view_object_full_context", + options: options + ) + operation = ::Gapic::Rest::TransportOperation.new response + result = ::Google::Cloud::Storage::Control::V2::ObjectFullContext.decode_json response.body, ignore_unknown_fields: true + catch :response do + yield result, operation if block_given? + result + end + end + ## # @private # @@ -1191,6 +1231,27 @@ def self.transcode_list_intelligence_finding_revisions_request request_pb ) transcoder.transcode request_pb end + + ## + # @private + # + # GRPC transcoding helper method for the view_object_full_context REST call + # + # @param request_pb [::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest] + # A request object representing the call parameters. Required. + # @return [Array(String, [String, nil], Hash{String => String})] + # Uri, Body, Query string parameters + def self.transcode_view_object_full_context_request request_pb + transcoder = Gapic::Rest::GrpcTranscoder.new + .with_bindings( + uri_method: :get, + uri_template: "/v2/{name}:viewFullContext", + matches: [ + ["name", %r{^projects/[^/]+/buckets/[^/]+/objects(?:/(?<__wildcard__>.*))?$}, true] + ] + ) + transcoder.transcode request_pb + end end end end diff --git a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb index 054ddce2fb8f..7e13ceb11a3c 100644 --- a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb +++ b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_pb.rb @@ -13,6 +13,7 @@ require 'google/iam/v1/iam_policy_pb' require 'google/iam/v1/policy_pb' require 'google/longrunning/operations_pb' +require 'google/protobuf/any_pb' require 'google/protobuf/duration_pb' require 'google/protobuf/empty_pb' require 'google/protobuf/field_mask_pb' @@ -21,7 +22,7 @@ require 'google/type/interval_pb' -descriptor_data = "\n/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x1agoogle/type/interval.proto\"+\n\x11PendingRenameInfo\x12\x16\n\toperation\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xe2\x02\n\x06\x46older\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12N\n\x13pending_rename_info\x18\x07 \x01(\x0b\x32,.google.storage.control.v2.PendingRenameInfoB\x03\xe0\x41\x03:l\xea\x41i\n\x1dstorage.googleapis.com/Folder\x12\x37projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07\x66olders2\x06\x66older\"\xf4\x01\n\x10GetFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xd5\x01\n\x13\x43reateFolderRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x36\n\x06\x66older\x18\x02 \x01(\x0b\x32!.google.storage.control.v2.FolderB\x03\xe0\x41\x02\x12\x16\n\tfolder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\trecursive\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xf7\x01\n\x13\x44\x65leteFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8c\x02\n\x12ListFoldersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13lexicographic_start\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11lexicographic_end\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\t \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"b\n\x13ListFoldersResponse\x12\x32\n\x07\x66olders\x18\x01 \x03(\x0b\x32!.google.storage.control.v2.Folder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9b\x02\n\x13RenameFolderRequest\x12\x33\n\x04name\x18\x07 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12\"\n\x15\x64\x65stination_folder_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12$\n\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8a\x02\n\x1c\x44\x65leteFolderRecursiveRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12)\n\x17if_metageneration_match\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12-\n\x1bif_metageneration_not_match\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x9a\x02\n\"CommonLongRunningOperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1d\n\x10progress_percent\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\"\xa7\x01\n\x14RenameFolderMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\n\x10source_folder_id\x18\x02 \x01(\t\x12\x1d\n\x15\x64\x65stination_folder_id\x18\x03 \x01(\t\"\x8a\x01\n\x1d\x44\x65leteFolderRecursiveMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x11\n\tfolder_id\x18\x02 \x01(\t\"\xf8\x03\n\rStorageLayout\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rlocation_type\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x64\n\x17\x63ustom_placement_config\x18\x04 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xe0\x41\x03\x12\x63\n\x16hierarchical_namespace\x18\x05 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xe0\x41\x03\x1a/\n\x15\x43ustomPlacementConfig\x12\x16\n\x0e\x64\x61ta_locations\x18\x01 \x03(\t\x1a(\n\x15HierarchicalNamespace\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08:{\xea\x41x\n$storage.googleapis.com/StorageLayout\x12\x31projects/{project}/buckets/{bucket}/storageLayout*\x0estorageLayouts2\rstorageLayout\"\x86\x01\n\x17GetStorageLayoutRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/StorageLayout\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9d\x07\n\rManagedFolder\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12Z\n\x12rapid_cache_config\x18\x06 \x01(\x0b\x32\x39.google.storage.control.v2.ManagedFolder.RapidCacheConfigH\x00\x88\x01\x01\x1a\xe8\x03\n\x10RapidCacheConfig\x12^\n\x08policies\x18\x01 \x03(\x0b\x32G.google.storage.control.v2.ManagedFolder.RapidCacheConfig.PoliciesEntryB\x03\xe0\x41\x01\x1a\xf6\x01\n\x10RapidCachePolicy\x12\x1b\n\x0erapid_cache_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12v\n\x0fingest_on_write\x18\x02 \x01(\x0e\x32X.google.storage.control.v2.ManagedFolder.RapidCacheConfig.RapidCachePolicy.IngestOnWriteB\x03\xe0\x41\x02\"M\n\rIngestOnWrite\x12\x1f\n\x1bINGEST_ON_WRITE_UNSPECIFIED\x10\x00\x12\x1b\n\x17INGEST_ON_WRITE_ENABLED\x10\x01\x1a{\n\rPoliciesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12Y\n\x05value\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.ManagedFolder.RapidCacheConfig.RapidCachePolicy:\x02\x38\x01:\x91\x01\xea\x41\x8d\x01\n$storage.googleapis.com/ManagedFolder\x12\x46projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0emanagedFolders2\rmanagedFolderB\x15\n\x13_rapid_cache_config\"\x82\x02\n\x17GetManagedFolderRequest\x12:\n\x04name\x18\x06 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe2\x01\n\x1a\x43reateManagedFolderRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x45\n\x0emanaged_folder\x18\x02 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x1e\n\x11managed_folder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9e\x02\n\x1a\x44\x65leteManagedFolderRequest\x12:\n\x04name\x18\x07 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\n\x0f\x61llow_non_empty\x18\x05 \x01(\x08\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xc0\x01\n\x19ListManagedFoldersRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListManagedFoldersResponse\x12\x41\n\x0fmanaged_folders\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.ManagedFolder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xd0\x02\n\x1aUpdateManagedFolderRequest\x12\x45\n\x0emanaged_folder\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12)\n\x17if_metageneration_match\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12-\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe7\x02\n\x1b\x43reateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x06 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x12!\n\x0fingest_on_write\x18\x07 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_write\"\x8b\x03\n\x18\x43reateRapidCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1b\n\x0erapid_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x12!\n\x0fingest_on_write\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x12\x1c\n\ncache_type\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x42\x11\n\x0f_rapid_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_writeB\r\n\x0b_cache_type\"\xe7\x02\n\x1bUpdateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x05 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\"\n\x10\x61\x64mission_policy\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x1c\n\x0fingest_on_write\x18\x06 \x01(\x08H\x04\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_write\"\x8b\x03\n\x18UpdateRapidCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1b\n\x0erapid_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\"\n\x10\x61\x64mission_policy\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x1c\n\x0fingest_on_write\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1c\n\ncache_type\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x42\x11\n\x0f_rapid_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_writeB\r\n\x0b_cache_type\"\xdc\x03\n\rAnywhereCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\n \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\t \x01(\t\x12\x12\n\x05state\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03\x12!\n\x0fingest_on_write\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x00\x88\x01\x01:\x8e\x01\xea\x41\x8a\x01\n$storage.googleapis.com/AnywhereCache\x12\x43projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0e\x61nywhereCaches2\ranywhereCacheB\x12\n\x10_ingest_on_write\"\xc2\x01\n\x1a\x43reateAnywhereCacheRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x45\n\x0e\x61nywhere_cache\x18\x03 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xba\x01\n\x1aUpdateAnywhereCacheRequest\x12\x45\n\x0e\x61nywhere_cache\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"z\n\x1b\x44isableAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x19PauseAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"y\n\x1aResumeAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17GetAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa1\x01\n\x19ListAnywhereCachesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListAnywhereCachesResponse\x12\x41\n\x0f\x61nywhere_caches\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.AnywhereCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xaa\x03\n\nRapidCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x17\n\ncache_type\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\x05 \x01(\t\x12\x12\n\x05state\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\t \x01(\x08\x42\x03\xe0\x41\x03:~\xea\x41{\n!storage.googleapis.com/RapidCache\x12=projects/{project}/buckets/{bucket}/rapidCaches/{rapid_cache}*\x0brapidCaches2\nrapidCache\"\xb6\x01\n\x17\x43reateRapidCacheRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!storage.googleapis.com/RapidCache\x12?\n\x0brapid_cache\x18\x02 \x01(\x0b\x32%.google.storage.control.v2.RapidCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb1\x01\n\x17UpdateRapidCacheRequest\x12?\n\x0brapid_cache\x18\x01 \x01(\x0b\x32%.google.storage.control.v2.RapidCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"p\n\x14GetRapidCacheRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!storage.googleapis.com/RapidCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9b\x01\n\x16ListRapidCachesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!storage.googleapis.com/RapidCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"o\n\x17ListRapidCachesResponse\x12;\n\x0crapid_caches\x18\x01 \x03(\x0b\x32%.google.storage.control.v2.RapidCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9e\x0e\n\x12IntelligenceConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12X\n\x0e\x65\x64ition_config\x18\x02 \x01(\x0e\x32;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xe0\x41\x01\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12I\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x34.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xe0\x41\x01\x12u\n\x1d\x65\x66\x66\x65\x63tive_intelligence_config\x18\x05 \x01(\x0b\x32I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xe0\x41\x03\x12O\n\x0ctrial_config\x18\x07 \x01(\x0b\x32\x39.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1a\xfc\x04\n\x06\x46ilter\x12v\n included_cloud_storage_locations\x18\x01 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\n excluded_cloud_storage_locations\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\n\x1eincluded_cloud_storage_buckets\x18\x03 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\n\x1e\x65xcluded_cloud_storage_buckets\x18\x04 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1a/\n\x15\x43loudStorageLocations\x12\x16\n\tlocations\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x13\x43loudStorageBuckets\x12\x1e\n\x11\x62ucket_id_regexes\x18\x01 \x03(\tB\x03\xe0\x41\x01\x42\x19\n\x17\x63loud_storage_locationsB\x17\n\x15\x63loud_storage_buckets\x1a\x8a\x02\n\x1b\x45\x66\x66\x65\x63tiveIntelligenceConfig\x12z\n\x11\x65\x66\x66\x65\x63tive_edition\x18\x01 \x01(\x0e\x32Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xe0\x41\x03\x12 \n\x13intelligence_config\x18\x02 \x01(\tB\x03\xe0\x41\x03\"M\n\x10\x45\x66\x66\x65\x63tiveEdition\x12!\n\x1d\x45\x46\x46\x45\x43TIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x1a\x43\n\x0bTrialConfig\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"s\n\rEditionConfig\x12\x1e\n\x1a\x45\x44ITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0b\n\x07INHERIT\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\t\n\x05TRIAL\x10\x05\x12\x0e\n\nESSENTIALS\x10\x06:\x8b\x02\xea\x41\x87\x02\n)storage.googleapis.com/IntelligenceConfig\x12\x38\x66olders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xd5\x01\n+UpdateOrganizationIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xcf\x01\n%UpdateFolderIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xd0\x01\n&UpdateProjectIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"k\n(GetOrganizationIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"e\n\"GetFolderIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"f\n#GetProjectIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"\xbe \n\x13IntelligenceFinding\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x39\n\x04type\x18\x03 \x01(\x0e\x32&.google.storage.control.v2.FindingTypeB\x03\xe0\x41\x03\x12\x41\n\x08\x63\x61tegory\x18\x04 \x01(\x0e\x32*.google.storage.control.v2.FindingCategoryB\x03\xe0\x41\x03\x12\x41\n\x08severity\x18\x05 \x01(\x0e\x32*.google.storage.control.v2.FindingSeverityB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1c\n\x0ftarget_resource\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12!\n\x14\x61ssociated_resources\x18\t \x03(\tB\x03\xe0\x41\x03\x12\x36\n\x12observation_period\x18\n \x01(\x0b\x32\x15.google.type.IntervalB\x03\xe0\x41\x03\x12\x97\x01\n.coldline_and_archival_storage_operations_spike\x18\x0b \x01(\x0b\x32X.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpikeB\x03\xe0\x41\x03H\x00\x12m\n\x18throttled_requests_spike\x18\x0c \x01(\x0b\x32\x44.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpikeB\x03\xe0\x41\x03H\x00\x12o\n\x19\x63ross_region_egress_spike\x18\r \x01(\x0b\x32\x45.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpikeB\x03\xe0\x41\x03H\x00\x12q\n\x1astorage_growth_above_trend\x18\x0e \x01(\x0b\x32\x46.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrendB\x03\xe0\x41\x03H\x00\x1a\x89\x07\n)ColdlineAndArchivalStorageOperationsSpike\x12 \n\x13percentage_increase\x18\x01 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x85\x01\n\x0btop_buckets\x18\x03 \x03(\x0b\x32k.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContributionB\x03\xe0\x41\x03\x1a\x8c\x05\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x95\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32x.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\xaa\x02\n\x0c\x43ontribution\x12\xa7\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32\x8b\x01.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1ap\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xaf\x06\n\x16\x43rossRegionEgressSpike\x12\x1f\n\x12total_egress_bytes\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12r\n\x0btop_buckets\x18\x03 \x03(\x0b\x32X.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContributionB\x03\xe0\x41\x03\x1a\xdd\x04\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\x1f\n\x12total_egress_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x82\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32\x65.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\x92\x02\n\x0c\x43ontribution\x12\x93\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32x.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1al\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12total_egress_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xab\x06\n\x15ThrottledRequestSpike\x12\x1f\n\x12throttled_requests\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12q\n\x0btop_buckets\x18\x03 \x03(\x0b\x32W.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContributionB\x03\xe0\x41\x03\x1a\xdb\x04\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\x1f\n\x12throttled_requests\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x81\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32\x64.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\x91\x02\n\x0c\x43ontribution\x12\x92\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32w.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1al\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12throttled_requests\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xa7\x03\n\x17StorageGrowthAboveTrend\x12\'\n\x1atotal_storage_growth_bytes\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12s\n\x0btop_buckets\x18\x03 \x03(\x0b\x32Y.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContributionB\x03\xe0\x41\x03\x1a\xcb\x01\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\'\n\x1atotal_storage_growth_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x42\t\n\x07\x64\x65tails:\xb0\x01\xea\x41\xac\x01\n*storage.googleapis.com/IntelligenceFinding\x12Sprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}*\x14intelligenceFindings2\x13intelligenceFindingB\x1e\n\x1cintelligence_finding_details\"\x8d\x03\n\x1bIntelligenceFindingRevision\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x45\n\x08snapshot\x18\x02 \x01(\x0b\x32..google.storage.control.v2.IntelligenceFindingB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:\xdd\x01\xea\x41\xd9\x01\n2storage.googleapis.com/IntelligenceFindingRevision\x12hprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}*\x1cintelligenceFindingRevisions2\x1bintelligenceFindingRevision\"a\n\x1dGetIntelligenceFindingRequest\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*storage.googleapis.com/IntelligenceFinding\"\xab\x01\n\x1fListIntelligenceFindingsRequest\x12\x42\n\x06parent\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\x12*storage.googleapis.com/IntelligenceFinding\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n ListIntelligenceFindingsResponse\x12M\n\x15intelligence_findings\x18\x01 \x03(\x0b\x32..google.storage.control.v2.IntelligenceFinding\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb7\x02\n$SummarizeIntelligenceFindingsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12j\n\x0eresource_scope\x18\x02 \x01(\x0e\x32M.google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScopeB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01\"H\n\rResourceScope\x12\x1e\n\x1aRESOURCE_SCOPE_UNSPECIFIED\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x0b\n\x07PROJECT\x10\x02\"\x86\x01\n%SummarizeIntelligenceFindingsResponse\x12\x44\n\x11\x66inding_summaries\x18\x01 \x03(\x0b\x32).google.storage.control.v2.FindingSummary\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"q\n%GetIntelligenceFindingRevisionRequest\x12H\n\x04name\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\n2storage.googleapis.com/IntelligenceFindingRevision\"\xa6\x01\n\'ListIntelligenceFindingRevisionsRequest\x12J\n\x06parent\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\x12\x32storage.googleapis.com/IntelligenceFindingRevision\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xa3\x01\n(ListIntelligenceFindingRevisionsResponse\x12^\n\x1eintelligence_finding_revisions\x18\x01 \x03(\x0b\x32\x36.google.storage.control.v2.IntelligenceFindingRevision\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xba\x05\n\x0e\x46indingSummary\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32&.google.storage.control.v2.FindingTypeB\x03\xe0\x41\x03\x12\x41\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32*.google.storage.control.v2.FindingCategoryB\x03\xe0\x41\x03\x12\x1c\n\x0ftarget_resource\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x08severity\x18\x07 \x01(\x0e\x32*.google.storage.control.v2.FindingSeverity\x12V\n\x0fsummary_details\x18\x08 \x03(\x0b\x32\x38.google.storage.control.v2.FindingSummary.SummaryDetailsB\x03\xe0\x41\x03\x1a\x89\x02\n\x0eSummaryDetails\x12\x0f\n\x05\x63ount\x18\x01 \x01(\x03H\x00\x12\x14\n\npercentage\x18\x02 \x01(\x02H\x00\x12\x61\n\rresource_type\x18\x03 \x01(\x0e\x32\x45.google.storage.control.v2.FindingSummary.SummaryDetails.ResourceTypeB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x03\"F\n\x0cResourceType\x12\x1d\n\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PROJECT\x10\x01\x12\n\n\x06\x42UCKET\x10\x02\x42\x0b\n\tmagnitude*\xef\x01\n\x0b\x46indingType\x12\x1c\n\x18\x46INDING_TYPE_UNSPECIFIED\x10\x00\x12?\n;FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE\x10\x01\x12(\n$FINDING_TYPE_THROTTLED_REQUEST_SPIKE\x10\x02\x12*\n&FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE\x10\x03\x12+\n\'FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND\x10\x04*{\n\x0f\x46indingCategory\x12 \n\x1c\x46INDING_CATEGORY_UNSPECIFIED\x10\x00\x12$\n FINDING_CATEGORY_DATA_MANAGEMENT\x10\x01\x12 \n\x1c\x46INDING_CATEGORY_PERFORMANCE\x10\x02*R\n\x0f\x46indingSeverity\x12 \n\x1c\x46INDING_SEVERITY_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x46INDING_SEVERITY_CRITICAL\x10\x01\x32\xd5\x41\n\x0eStorageControl\x12\xd3\x01\n\x0c\x43reateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1a!.google.storage.control.v2.Folder\"p\xda\x41\x17parent,folder,folder_id\x82\xd3\xe4\x93\x02\x33\")/v2/{parent=projects/*/buckets/*}/folders:\x06\x66older\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xc1\x01\n\x0c\x44\x65leteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1a\x16.google.protobuf.Empty\"i\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v2/{name=projects/*/buckets/*/folders/**}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xc6\x01\n\tGetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1a!.google.storage.control.v2.Folder\"i\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v2/{name=projects/*/buckets/*/folders/**}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xc5\x01\n\x0bListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1a..google.storage.control.v2.ListFoldersResponse\"W\xda\x41\x06parent\x82\xd3\xe4\x93\x02+\x12)/v2/{parent=projects/*/buckets/*}/folders\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x8a\x02\n\x0cRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1a\x1d.google.longrunning.Operation\"\xaa\x01\xca\x41\x1e\n\x06\x46older\x12\x14RenameFolderMetadata\xda\x41\x1aname,destination_folder_id\x82\xd3\xe4\x93\x02\x36\"1/v2/{name=projects/*/buckets/*/folders/**}:rename:\x01*\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa7\x02\n\x15\x44\x65leteFolderRecursive\x12\x37.google.storage.control.v2.DeleteFolderRecursiveRequest\x1a\x1d.google.longrunning.Operation\"\xb5\x01\xca\x41\x36\n\x15google.protobuf.Empty\x12\x1d\x44\x65leteFolderRecursiveMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02?\":/v2/{name=projects/*/buckets/*/folders/**}:deleteRecursive:\x01*\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xde\x01\n\x10GetStorageLayout\x12\x32.google.storage.control.v2.GetStorageLayoutRequest\x1a(.google.storage.control.v2.StorageLayout\"l\xda\x41\x04name\x82\xd3\xe4\x93\x02/\x12-/v2/{name=projects/*/buckets/*/storageLayout}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xbf\x01\n\x13\x43reateManagedFolder\x12\x35.google.storage.control.v2.CreateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"G\xda\x41\'parent,managed_folder,managed_folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x9d\x01\n\x13\x44\x65leteManagedFolder\x12\x35.google.storage.control.v2.DeleteManagedFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetManagedFolder\x12\x32.google.storage.control.v2.GetManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListManagedFolders\x12\x34.google.storage.control.v2.ListManagedFoldersRequest\x1a\x35.google.storage.control.v2.ListManagedFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd4\x01\n\x13UpdateManagedFolder\x12\x35.google.storage.control.v2.UpdateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"\\\xda\x41\x1amanaged_folder,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13managed_folder.name\x12 {bucket=projects/*/buckets/*}/**\x12\xd1\x01\n\x13\x43reateAnywhereCache\x12\x35.google.storage.control.v2.CreateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"d\xca\x41,\n\rAnywhereCache\x12\x1b\x43reateAnywhereCacheMetadata\xda\x41\x15parent,anywhere_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xf9\x01\n\x13UpdateAnywhereCache\x12\x35.google.storage.control.v2.UpdateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"\x8b\x01\xca\x41,\n\rAnywhereCache\x12\x1bUpdateAnywhereCacheMetadata\xda\x41\x1a\x61nywhere_cache,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13\x61nywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xb1\x01\n\x14\x44isableAnywhereCache\x12\x36.google.storage.control.v2.DisableAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xad\x01\n\x12PauseAnywhereCache\x12\x34.google.storage.control.v2.PauseAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xaf\x01\n\x13ResumeAnywhereCache\x12\x35.google.storage.control.v2.ResumeAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetAnywhereCache\x12\x32.google.storage.control.v2.GetAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListAnywhereCaches\x12\x34.google.storage.control.v2.ListAnywhereCachesRequest\x1a\x35.google.storage.control.v2.ListAnywhereCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xc2\x01\n\x10\x43reateRapidCache\x12\x32.google.storage.control.v2.CreateRapidCacheRequest\x1a\x1d.google.longrunning.Operation\"[\xca\x41&\n\nRapidCache\x12\x18\x43reateRapidCacheMetadata\xda\x41\x12parent,rapid_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xe6\x01\n\x10UpdateRapidCache\x12\x32.google.storage.control.v2.UpdateRapidCacheRequest\x1a\x1d.google.longrunning.Operation\"\x7f\xca\x41&\n\nRapidCache\x12\x18UpdateRapidCacheMetadata\xda\x41\x17rapid_cache,update_mask\x8a\xd3\xe4\x93\x02\x36\x12\x34\n\x10rapid_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xa0\x01\n\rGetRapidCache\x12/.google.storage.control.v2.GetRapidCacheRequest\x1a%.google.storage.control.v2.RapidCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa0\x01\n\x0fListRapidCaches\x12\x31.google.storage.control.v2.ListRapidCachesRequest\x1a\x32.google.storage.control.v2.ListRapidCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd2\x01\n\x1cGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9d\x02\n\x1fUpdateProjectIntelligenceConfig\x12\x41.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xcf\x01\n\x1bGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9a\x02\n\x1eUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xe1\x01\n!GetOrganizationIntelligenceConfig\x12\x43.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xac\x02\n$UpdateOrganizationIntelligenceConfig\x12\x46.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x8c\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02\x64\x32M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xa3\x01\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"X\xda\x41\x08resource\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\xaa\x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"_\xda\x41\x0fresource,policy\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\x96\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"\xaa\x01\xda\x41\x14resource,permissions\x8a\xd3\xe4\x93\x02\x8c\x01\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12\x34\n\x08resource\x12({bucket=projects/*/buckets/*}/objects/**\x12;\n\x08resource\x12/{bucket=projects/*/buckets/*}/managedFolders/**\x12\xcb\x01\n\x16GetIntelligenceFinding\x12\x38.google.storage.control.v2.GetIntelligenceFindingRequest\x1a..google.storage.control.v2.IntelligenceFinding\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v2/{name=projects/*/locations/*/intelligenceFindings/*}\x12\xde\x01\n\x18ListIntelligenceFindings\x12:.google.storage.control.v2.ListIntelligenceFindingsRequest\x1a;.google.storage.control.v2.ListIntelligenceFindingsResponse\"I\xda\x41\x06parent\x82\xd3\xe4\x93\x02:\x12\x38/v2/{parent=projects/*/locations/*}/intelligenceFindings\x12\x89\x03\n\x1dSummarizeIntelligenceFindings\x12?.google.storage.control.v2.SummarizeIntelligenceFindingsRequest\x1a@.google.storage.control.v2.SummarizeIntelligenceFindingsResponse\"\xe4\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd4\x01\x12\x42/v2/{parent=projects/*/locations/*}/intelligenceFindings:summarizeZC\x12\x41/v2/{parent=folders/*/locations/*}/intelligenceFindings:summarizeZI\x12G/v2/{parent=organizations/*/locations/*}/intelligenceFindings:summarize\x12\xef\x01\n\x1eGetIntelligenceFindingRevision\x12@.google.storage.control.v2.GetIntelligenceFindingRevisionRequest\x1a\x36.google.storage.control.v2.IntelligenceFindingRevision\"S\xda\x41\x04name\x82\xd3\xe4\x93\x02\x46\x12\x44/v2/{name=projects/*/locations/*/intelligenceFindings/*/revisions/*}\x12\x82\x02\n ListIntelligenceFindingRevisions\x12\x42.google.storage.control.v2.ListIntelligenceFindingRevisionsRequest\x1a\x43.google.storage.control.v2.ListIntelligenceFindingRevisionsResponse\"U\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x46\x12\x44/v2/{parent=projects/*/locations/*/intelligenceFindings/*}/revisions\x1a\xa7\x02\xca\x41\x16storage.googleapis.com\xd2\x41\x8a\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xa6\x02\n\x1d\x63om.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xaa\x02\x1fGoogle.Cloud.Storage.Control.V2\xca\x02\x1fGoogle\\Cloud\\Storage\\Control\\V2\xea\x02#Google::Cloud::Storage::Control::V2\xea\x41\x44\n\x1dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}b\x06proto3" +descriptor_data = "\n/google/storage/control/v2/storage_control.proto\x12\x19google.storage.control.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a#google/longrunning/operations.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\x1a\x1agoogle/type/interval.proto\"+\n\x11PendingRenameInfo\x12\x16\n\toperation\x18\x01 \x01(\tB\x03\xe0\x41\x03\"\xe2\x02\n\x06\x46older\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12N\n\x13pending_rename_info\x18\x07 \x01(\x0b\x32,.google.storage.control.v2.PendingRenameInfoB\x03\xe0\x41\x03:l\xea\x41i\n\x1dstorage.googleapis.com/Folder\x12\x37projects/{project}/buckets/{bucket}/folders/{folder=**}*\x07\x66olders2\x06\x66older\"\xf4\x01\n\x10GetFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xd5\x01\n\x13\x43reateFolderRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x36\n\x06\x66older\x18\x02 \x01(\x0b\x32!.google.storage.control.v2.FolderB\x03\xe0\x41\x02\x12\x16\n\tfolder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x16\n\trecursive\x18\x04 \x01(\x08\x42\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xf7\x01\n\x13\x44\x65leteFolderRequest\x12\x33\n\x04name\x18\x06 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8c\x02\n\x12ListFoldersRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dstorage.googleapis.com/Folder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tdelimiter\x18\x08 \x01(\tB\x03\xe0\x41\x01\x12 \n\x13lexicographic_start\x18\x06 \x01(\tB\x03\xe0\x41\x01\x12\x1e\n\x11lexicographic_end\x18\x07 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\t \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"b\n\x13ListFoldersResponse\x12\x32\n\x07\x66olders\x18\x01 \x03(\x0b\x32!.google.storage.control.v2.Folder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9b\x02\n\x13RenameFolderRequest\x12\x33\n\x04name\x18\x07 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12\"\n\x15\x64\x65stination_folder_id\x18\x08 \x01(\tB\x03\xe0\x41\x02\x12$\n\x17if_metageneration_match\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x05 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x8a\x02\n\x1c\x44\x65leteFolderRecursiveRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Folder\x12)\n\x17if_metageneration_match\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12-\n\x1bif_metageneration_not_match\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\x9a\x02\n\"CommonLongRunningOperationMetadata\x12\x34\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x11\n\x04type\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12#\n\x16requested_cancellation\x18\x05 \x01(\x08\x42\x03\xe0\x41\x03\x12\x1d\n\x10progress_percent\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\"\xa7\x01\n\x14RenameFolderMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x18\n\x10source_folder_id\x18\x02 \x01(\t\x12\x1d\n\x15\x64\x65stination_folder_id\x18\x03 \x01(\t\"\x8a\x01\n\x1d\x44\x65leteFolderRecursiveMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x11\n\tfolder_id\x18\x02 \x01(\t\"\xfb\x04\n\rStorageLayout\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08location\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x1a\n\rlocation_type\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x64\n\x17\x63ustom_placement_config\x18\x04 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.CustomPlacementConfigB\x03\xe0\x41\x03\x12\x63\n\x16hierarchical_namespace\x18\x05 \x01(\x0b\x32>.google.storage.control.v2.StorageLayout.HierarchicalNamespaceB\x03\xe0\x41\x03\x12V\n\x10rapid_cache_info\x18\x06 \x01(\x0b\x32\x37.google.storage.control.v2.StorageLayout.RapidCacheInfoB\x03\xe0\x41\x03\x1a/\n\x15\x43ustomPlacementConfig\x12\x16\n\x0e\x64\x61ta_locations\x18\x01 \x03(\t\x1a(\n\x15HierarchicalNamespace\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x1a)\n\x0eRapidCacheInfo\x12\x17\n\ncache_type\x18\x01 \x01(\tB\x03\xe0\x41\x03:{\xea\x41x\n$storage.googleapis.com/StorageLayout\x12\x31projects/{project}/buckets/{bucket}/storageLayout*\x0estorageLayouts2\rstorageLayout\"\x86\x01\n\x17GetStorageLayoutRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/StorageLayout\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9d\x07\n\rManagedFolder\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1b\n\x0emetageneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12Z\n\x12rapid_cache_config\x18\x06 \x01(\x0b\x32\x39.google.storage.control.v2.ManagedFolder.RapidCacheConfigH\x00\x88\x01\x01\x1a\xe8\x03\n\x10RapidCacheConfig\x12^\n\x08policies\x18\x01 \x03(\x0b\x32G.google.storage.control.v2.ManagedFolder.RapidCacheConfig.PoliciesEntryB\x03\xe0\x41\x01\x1a\xf6\x01\n\x10RapidCachePolicy\x12\x1b\n\x0erapid_cache_id\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12v\n\x0fingest_on_write\x18\x02 \x01(\x0e\x32X.google.storage.control.v2.ManagedFolder.RapidCacheConfig.RapidCachePolicy.IngestOnWriteB\x03\xe0\x41\x02\"M\n\rIngestOnWrite\x12\x1f\n\x1bINGEST_ON_WRITE_UNSPECIFIED\x10\x00\x12\x1b\n\x17INGEST_ON_WRITE_ENABLED\x10\x01\x1a{\n\rPoliciesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12Y\n\x05value\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.ManagedFolder.RapidCacheConfig.RapidCachePolicy:\x02\x38\x01:\x91\x01\xea\x41\x8d\x01\n$storage.googleapis.com/ManagedFolder\x12\x46projects/{project}/buckets/{bucket}/managedFolders/{managed_folder=**}*\x0emanagedFolders2\rmanagedFolderB\x15\n\x13_rapid_cache_config\"\x82\x02\n\x17GetManagedFolderRequest\x12:\n\x04name\x18\x06 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe2\x01\n\x1a\x43reateManagedFolderRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x45\n\x0emanaged_folder\x18\x02 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x1e\n\x11managed_folder_id\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9e\x02\n\x1a\x44\x65leteManagedFolderRequest\x12:\n\x04name\x18\x07 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/ManagedFolder\x12$\n\x17if_metageneration_match\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12(\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03H\x01\x88\x01\x01\x12\x17\n\x0f\x61llow_non_empty\x18\x05 \x01(\x08\x12\x1f\n\nrequest_id\x18\x06 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xc0\x01\n\x19ListManagedFoldersRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/ManagedFolder\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06prefix\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListManagedFoldersResponse\x12\x41\n\x0fmanaged_folders\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.ManagedFolder\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xd0\x02\n\x1aUpdateManagedFolderRequest\x12\x45\n\x0emanaged_folder\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.ManagedFolderB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12)\n\x17if_metageneration_match\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12-\n\x1bif_metageneration_not_match\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12\x1f\n\nrequest_id\x18\x05 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x42\x1a\n\x18_if_metageneration_matchB\x1e\n\x1c_if_metageneration_not_match\"\xe7\x02\n\x1b\x43reateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x06 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x12!\n\x0fingest_on_write\x18\x07 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_write\"\x8b\x03\n\x18\x43reateRapidCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1b\n\x0erapid_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x1d\n\x10\x61\x64mission_policy\x18\x05 \x01(\tH\x03\x88\x01\x01\x12!\n\x0fingest_on_write\x18\x06 \x01(\x08\x42\x03\xe0\x41\x01H\x04\x88\x01\x01\x12\x1c\n\ncache_type\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x42\x11\n\x0f_rapid_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_writeB\r\n\x0b_cache_type\"\xe7\x02\n\x1bUpdateAnywhereCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1e\n\x11\x61nywhere_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x05 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\"\n\x10\x61\x64mission_policy\x18\x04 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x1c\n\x0fingest_on_write\x18\x06 \x01(\x08H\x04\x88\x01\x01\x42\x14\n\x12_anywhere_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_write\"\x8b\x03\n\x18UpdateRapidCacheMetadata\x12V\n\x0f\x63ommon_metadata\x18\x01 \x01(\x0b\x32=.google.storage.control.v2.CommonLongRunningOperationMetadata\x12\x1b\n\x0erapid_cache_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04zone\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\"\n\x10\x61\x64mission_policy\x18\x05 \x01(\tB\x03\xe0\x41\x01H\x03\x88\x01\x01\x12\x1c\n\x0fingest_on_write\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1c\n\ncache_type\x18\x07 \x01(\tB\x03\xe0\x41\x01H\x05\x88\x01\x01\x42\x11\n\x0f_rapid_cache_idB\x07\n\x05_zoneB\x06\n\x04_ttlB\x13\n\x11_admission_policyB\x12\n\x10_ingest_on_writeB\r\n\x0b_cache_type\"\xdc\x03\n\rAnywhereCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\n \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\t \x01(\t\x12\x12\n\x05state\x18\x05 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\x08 \x01(\x08\x42\x03\xe0\x41\x03\x12!\n\x0fingest_on_write\x18\x0b \x01(\x08\x42\x03\xe0\x41\x01H\x00\x88\x01\x01:\x8e\x01\xea\x41\x8a\x01\n$storage.googleapis.com/AnywhereCache\x12\x43projects/{project}/buckets/{bucket}/anywhereCaches/{anywhere_cache}*\x0e\x61nywhereCaches2\ranywhereCacheB\x12\n\x10_ingest_on_write\"\xc2\x01\n\x1a\x43reateAnywhereCacheRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x45\n\x0e\x61nywhere_cache\x18\x03 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xba\x01\n\x1aUpdateAnywhereCacheRequest\x12\x45\n\x0e\x61nywhere_cache\x18\x01 \x01(\x0b\x32(.google.storage.control.v2.AnywhereCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"z\n\x1b\x44isableAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x19PauseAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"y\n\x1aResumeAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"v\n\x17GetAnywhereCacheRequest\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\n$storage.googleapis.com/AnywhereCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa1\x01\n\x19ListAnywhereCachesRequest\x12<\n\x06parent\x18\x01 \x01(\tB,\xe0\x41\x02\xfa\x41&\x12$storage.googleapis.com/AnywhereCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"x\n\x1aListAnywhereCachesResponse\x12\x41\n\x0f\x61nywhere_caches\x18\x01 \x03(\x0b\x32(.google.storage.control.v2.AnywhereCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xaa\x03\n\nRapidCache\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x05\x12\x11\n\x04zone\x18\x02 \x01(\tB\x03\xe0\x41\x05\x12\x17\n\ncache_type\x18\x03 \x01(\tB\x03\xe0\x41\x05\x12&\n\x03ttl\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x18\n\x10\x61\x64mission_policy\x18\x05 \x01(\t\x12\x12\n\x05state\x18\x06 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1b\n\x0epending_update\x18\t \x01(\x08\x42\x03\xe0\x41\x03:~\xea\x41{\n!storage.googleapis.com/RapidCache\x12=projects/{project}/buckets/{bucket}/rapidCaches/{rapid_cache}*\x0brapidCaches2\nrapidCache\"\xb6\x01\n\x17\x43reateRapidCacheRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!storage.googleapis.com/RapidCache\x12?\n\x0brapid_cache\x18\x02 \x01(\x0b\x32%.google.storage.control.v2.RapidCacheB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb1\x01\n\x17UpdateRapidCacheRequest\x12?\n\x0brapid_cache\x18\x01 \x01(\x0b\x32%.google.storage.control.v2.RapidCacheB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"p\n\x14GetRapidCacheRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!storage.googleapis.com/RapidCache\x12\x1f\n\nrequest_id\x18\x02 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x9b\x01\n\x16ListRapidCachesRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\x12!storage.googleapis.com/RapidCache\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x1f\n\nrequest_id\x18\x04 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"o\n\x17ListRapidCachesResponse\x12;\n\x0crapid_caches\x18\x01 \x03(\x0b\x32%.google.storage.control.v2.RapidCache\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\x9e\x0e\n\x12IntelligenceConfig\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12X\n\x0e\x65\x64ition_config\x18\x02 \x01(\x0e\x32;.google.storage.control.v2.IntelligenceConfig.EditionConfigB\x03\xe0\x41\x01\x12\x34\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12I\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x34.google.storage.control.v2.IntelligenceConfig.FilterB\x03\xe0\x41\x01\x12u\n\x1d\x65\x66\x66\x65\x63tive_intelligence_config\x18\x05 \x01(\x0b\x32I.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfigB\x03\xe0\x41\x03\x12O\n\x0ctrial_config\x18\x07 \x01(\x0b\x32\x39.google.storage.control.v2.IntelligenceConfig.TrialConfig\x1a\xfc\x04\n\x06\x46ilter\x12v\n included_cloud_storage_locations\x18\x01 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12v\n excluded_cloud_storage_locations\x18\x02 \x01(\x0b\x32J.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageLocationsH\x00\x12r\n\x1eincluded_cloud_storage_buckets\x18\x03 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x12r\n\x1e\x65xcluded_cloud_storage_buckets\x18\x04 \x01(\x0b\x32H.google.storage.control.v2.IntelligenceConfig.Filter.CloudStorageBucketsH\x01\x1a/\n\x15\x43loudStorageLocations\x12\x16\n\tlocations\x18\x01 \x03(\tB\x03\xe0\x41\x01\x1a\x35\n\x13\x43loudStorageBuckets\x12\x1e\n\x11\x62ucket_id_regexes\x18\x01 \x03(\tB\x03\xe0\x41\x01\x42\x19\n\x17\x63loud_storage_locationsB\x17\n\x15\x63loud_storage_buckets\x1a\x8a\x02\n\x1b\x45\x66\x66\x65\x63tiveIntelligenceConfig\x12z\n\x11\x65\x66\x66\x65\x63tive_edition\x18\x01 \x01(\x0e\x32Z.google.storage.control.v2.IntelligenceConfig.EffectiveIntelligenceConfig.EffectiveEditionB\x03\xe0\x41\x03\x12 \n\x13intelligence_config\x18\x02 \x01(\tB\x03\xe0\x41\x03\"M\n\x10\x45\x66\x66\x65\x63tiveEdition\x12!\n\x1d\x45\x46\x46\x45\x43TIVE_EDITION_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x0c\n\x08STANDARD\x10\x02\x1a\x43\n\x0bTrialConfig\x12\x34\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\"s\n\rEditionConfig\x12\x1e\n\x1a\x45\x44ITION_CONFIG_UNSPECIFIED\x10\x00\x12\x0b\n\x07INHERIT\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\x12\x0c\n\x08STANDARD\x10\x03\x12\t\n\x05TRIAL\x10\x05\x12\x0e\n\nESSENTIALS\x10\x06:\x8b\x02\xea\x41\x87\x02\n)storage.googleapis.com/IntelligenceConfig\x12\x38\x66olders/{folder}/locations/{location}/intelligenceConfig\x12;organizations/{org}/locations/{location}/intelligenceConfig\x12:projects/{project}/locations/{location}/intelligenceConfig*\x13intelligenceConfigs2\x12intelligenceConfig\"\xd5\x01\n+UpdateOrganizationIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xcf\x01\n%UpdateFolderIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xd0\x01\n&UpdateProjectIntelligenceConfigRequest\x12O\n\x13intelligence_config\x18\x01 \x01(\x0b\x32-.google.storage.control.v2.IntelligenceConfigB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x1f\n\nrequest_id\x18\x03 \x01(\tB\x0b\xe0\x41\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"k\n(GetOrganizationIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"e\n\"GetFolderIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"f\n#GetProjectIntelligenceConfigRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)storage.googleapis.com/IntelligenceConfig\"\xbe \n\x13IntelligenceFinding\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x03\xe0\x41\x03\x12\x39\n\x04type\x18\x03 \x01(\x0e\x32&.google.storage.control.v2.FindingTypeB\x03\xe0\x41\x03\x12\x41\n\x08\x63\x61tegory\x18\x04 \x01(\x0e\x32*.google.storage.control.v2.FindingCategoryB\x03\xe0\x41\x03\x12\x41\n\x08severity\x18\x05 \x01(\x0e\x32*.google.storage.control.v2.FindingSeverityB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x1c\n\x0ftarget_resource\x18\x08 \x01(\tB\x03\xe0\x41\x03\x12!\n\x14\x61ssociated_resources\x18\t \x03(\tB\x03\xe0\x41\x03\x12\x36\n\x12observation_period\x18\n \x01(\x0b\x32\x15.google.type.IntervalB\x03\xe0\x41\x03\x12\x97\x01\n.coldline_and_archival_storage_operations_spike\x18\x0b \x01(\x0b\x32X.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpikeB\x03\xe0\x41\x03H\x00\x12m\n\x18throttled_requests_spike\x18\x0c \x01(\x0b\x32\x44.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpikeB\x03\xe0\x41\x03H\x00\x12o\n\x19\x63ross_region_egress_spike\x18\r \x01(\x0b\x32\x45.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpikeB\x03\xe0\x41\x03H\x00\x12q\n\x1astorage_growth_above_trend\x18\x0e \x01(\x0b\x32\x46.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrendB\x03\xe0\x41\x03H\x00\x1a\x89\x07\n)ColdlineAndArchivalStorageOperationsSpike\x12 \n\x13percentage_increase\x18\x01 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12\x85\x01\n\x0btop_buckets\x18\x03 \x03(\x0b\x32k.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContributionB\x03\xe0\x41\x03\x1a\x8c\x05\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x12\x95\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32x.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\xaa\x02\n\x0c\x43ontribution\x12\xa7\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32\x8b\x01.google.storage.control.v2.IntelligenceFinding.ColdlineAndArchivalStorageOperationsSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1ap\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12#\n\x16total_operations_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xaf\x06\n\x16\x43rossRegionEgressSpike\x12\x1f\n\x12total_egress_bytes\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12r\n\x0btop_buckets\x18\x03 \x03(\x0b\x32X.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContributionB\x03\xe0\x41\x03\x1a\xdd\x04\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\x1f\n\x12total_egress_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x82\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32\x65.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\x92\x02\n\x0c\x43ontribution\x12\x93\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32x.google.storage.control.v2.IntelligenceFinding.CrossRegionEgressSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1al\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12total_egress_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xab\x06\n\x15ThrottledRequestSpike\x12\x1f\n\x12throttled_requests\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12q\n\x0btop_buckets\x18\x03 \x03(\x0b\x32W.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContributionB\x03\xe0\x41\x03\x1a\xdb\x04\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\x1f\n\x12throttled_requests\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12\x81\x01\n\x0c\x63ontribution\x18\x04 \x01(\x0b\x32\x64.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.ContributionB\x03\xe0\x41\x03H\x00\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x1a\x91\x02\n\x0c\x43ontribution\x12\x92\x01\n\x0ctop_prefixes\x18\x01 \x03(\x0b\x32w.google.storage.control.v2.IntelligenceFinding.ThrottledRequestSpike.BucketContribution.Contribution.PrefixContributionB\x03\xe0\x41\x03\x1al\n\x12PrefixContribution\x12\x13\n\x06prefix\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x1f\n\x12throttled_requests\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x42\t\n\x07\x64\x65tails\x1a\xa7\x03\n\x17StorageGrowthAboveTrend\x12\'\n\x1atotal_storage_growth_bytes\x18\x01 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x02 \x01(\x01\x42\x03\xe0\x41\x03\x12s\n\x0btop_buckets\x18\x03 \x03(\x0b\x32Y.google.storage.control.v2.IntelligenceFinding.StorageGrowthAboveTrend.BucketContributionB\x03\xe0\x41\x03\x1a\xcb\x01\n\x12\x42ucketContribution\x12\x35\n\x06\x62ucket\x18\x01 \x01(\tB%\xe0\x41\x03\xfa\x41\x1f\n\x1dstorage.googleapis.com/Bucket\x12\'\n\x1atotal_storage_growth_bytes\x18\x02 \x01(\x03\x42\x03\xe0\x41\x03\x12 \n\x13percentage_increase\x18\x03 \x01(\x01\x42\x03\xe0\x41\x03\x12(\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.google.rpc.StatusB\x03\xe0\x41\x03H\x00\x42\t\n\x07\x64\x65tails:\xb0\x01\xea\x41\xac\x01\n*storage.googleapis.com/IntelligenceFinding\x12Sprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}*\x14intelligenceFindings2\x13intelligenceFindingB\x1e\n\x1cintelligence_finding_details\"\x8d\x03\n\x1bIntelligenceFindingRevision\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x45\n\x08snapshot\x18\x02 \x01(\x0b\x32..google.storage.control.v2.IntelligenceFindingB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03:\xdd\x01\xea\x41\xd9\x01\n2storage.googleapis.com/IntelligenceFindingRevision\x12hprojects/{project}/locations/{location}/intelligenceFindings/{intelligence_finding}/revisions/{revision}*\x1cintelligenceFindingRevisions2\x1bintelligenceFindingRevision\"a\n\x1dGetIntelligenceFindingRequest\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\n*storage.googleapis.com/IntelligenceFinding\"\xab\x01\n\x1fListIntelligenceFindingsRequest\x12\x42\n\x06parent\x18\x01 \x01(\tB2\xe0\x41\x02\xfa\x41,\x12*storage.googleapis.com/IntelligenceFinding\x12\x13\n\x06\x66ilter\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x03 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x04 \x01(\tB\x03\xe0\x41\x01\"\x8a\x01\n ListIntelligenceFindingsResponse\x12M\n\x15intelligence_findings\x18\x01 \x03(\x0b\x32..google.storage.control.v2.IntelligenceFinding\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xb7\x02\n$SummarizeIntelligenceFindingsRequest\x12\x13\n\x06parent\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12j\n\x0eresource_scope\x18\x02 \x01(\x0e\x32M.google.storage.control.v2.SummarizeIntelligenceFindingsRequest.ResourceScopeB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x16\n\tpage_size\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x05 \x01(\tB\x03\xe0\x41\x01\"H\n\rResourceScope\x12\x1e\n\x1aRESOURCE_SCOPE_UNSPECIFIED\x10\x00\x12\n\n\x06PARENT\x10\x01\x12\x0b\n\x07PROJECT\x10\x02\"\x86\x01\n%SummarizeIntelligenceFindingsResponse\x12\x44\n\x11\x66inding_summaries\x18\x01 \x03(\x0b\x32).google.storage.control.v2.FindingSummary\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"q\n%GetIntelligenceFindingRevisionRequest\x12H\n\x04name\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\n2storage.googleapis.com/IntelligenceFindingRevision\"\xa6\x01\n\'ListIntelligenceFindingRevisionsRequest\x12J\n\x06parent\x18\x01 \x01(\tB:\xe0\x41\x02\xfa\x41\x34\x12\x32storage.googleapis.com/IntelligenceFindingRevision\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\xa3\x01\n(ListIntelligenceFindingRevisionsResponse\x12^\n\x1eintelligence_finding_revisions\x18\x01 \x03(\x0b\x32\x36.google.storage.control.v2.IntelligenceFindingRevision\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xba\x05\n\x0e\x46indingSummary\x12\x39\n\x04type\x18\x01 \x01(\x0e\x32&.google.storage.control.v2.FindingTypeB\x03\xe0\x41\x03\x12\x41\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32*.google.storage.control.v2.FindingCategoryB\x03\xe0\x41\x03\x12\x1c\n\x0ftarget_resource\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x34\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12\x34\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x03\xe0\x41\x03\x12<\n\x08severity\x18\x07 \x01(\x0e\x32*.google.storage.control.v2.FindingSeverity\x12V\n\x0fsummary_details\x18\x08 \x03(\x0b\x32\x38.google.storage.control.v2.FindingSummary.SummaryDetailsB\x03\xe0\x41\x03\x1a\x89\x02\n\x0eSummaryDetails\x12\x0f\n\x05\x63ount\x18\x01 \x01(\x03H\x00\x12\x14\n\npercentage\x18\x02 \x01(\x02H\x00\x12\x61\n\rresource_type\x18\x03 \x01(\x0e\x32\x45.google.storage.control.v2.FindingSummary.SummaryDetails.ResourceTypeB\x03\xe0\x41\x03\x12\x18\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x03\xe0\x41\x03\"F\n\x0cResourceType\x12\x1d\n\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x0b\n\x07PROJECT\x10\x01\x12\n\n\x06\x42UCKET\x10\x02\x42\x0b\n\tmagnitude\"\xb5\x02\n\x11ObjectFullContext\x12?\n\x04type\x18\x01 \x01(\x0e\x32\x31.google.storage.control.v2.ObjectFullContext.Type\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12/\n\x0b\x63reate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\rextended_data\x18\x06 \x01(\x0b\x32\x14.google.protobuf.Any\"4\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\n\n\x06\x43USTOM\x10\x01\x12\n\n\x06GOOGLE\x10\x02\"\x86\x01\n\x1cViewObjectFullContextRequest\x12\x17\n\ngeneration\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12\x18\n\x0b\x63ontext_key\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x33\n\x04name\x18\x05 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dstorage.googleapis.com/Object*\xef\x01\n\x0b\x46indingType\x12\x1c\n\x18\x46INDING_TYPE_UNSPECIFIED\x10\x00\x12?\n;FINDING_TYPE_COLDLINE_AND_ARCHIVAL_STORAGE_OPERATIONS_SPIKE\x10\x01\x12(\n$FINDING_TYPE_THROTTLED_REQUEST_SPIKE\x10\x02\x12*\n&FINDING_TYPE_CROSS_REGION_EGRESS_SPIKE\x10\x03\x12+\n\'FINDING_TYPE_STORAGE_GROWTH_ABOVE_TREND\x10\x04*{\n\x0f\x46indingCategory\x12 \n\x1c\x46INDING_CATEGORY_UNSPECIFIED\x10\x00\x12$\n FINDING_CATEGORY_DATA_MANAGEMENT\x10\x01\x12 \n\x1c\x46INDING_CATEGORY_PERFORMANCE\x10\x02*R\n\x0f\x46indingSeverity\x12 \n\x1c\x46INDING_SEVERITY_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x46INDING_SEVERITY_CRITICAL\x10\x01\x32\xfc\x43\n\x0eStorageControl\x12\xd3\x01\n\x0c\x43reateFolder\x12..google.storage.control.v2.CreateFolderRequest\x1a!.google.storage.control.v2.Folder\"p\xda\x41\x17parent,folder,folder_id\x82\xd3\xe4\x93\x02\x33\")/v2/{parent=projects/*/buckets/*}/folders:\x06\x66older\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xc1\x01\n\x0c\x44\x65leteFolder\x12..google.storage.control.v2.DeleteFolderRequest\x1a\x16.google.protobuf.Empty\"i\xda\x41\x04name\x82\xd3\xe4\x93\x02,**/v2/{name=projects/*/buckets/*/folders/**}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xc6\x01\n\tGetFolder\x12+.google.storage.control.v2.GetFolderRequest\x1a!.google.storage.control.v2.Folder\"i\xda\x41\x04name\x82\xd3\xe4\x93\x02,\x12*/v2/{name=projects/*/buckets/*/folders/**}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xc5\x01\n\x0bListFolders\x12-.google.storage.control.v2.ListFoldersRequest\x1a..google.storage.control.v2.ListFoldersResponse\"W\xda\x41\x06parent\x82\xd3\xe4\x93\x02+\x12)/v2/{parent=projects/*/buckets/*}/folders\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x8a\x02\n\x0cRenameFolder\x12..google.storage.control.v2.RenameFolderRequest\x1a\x1d.google.longrunning.Operation\"\xaa\x01\xca\x41\x1e\n\x06\x46older\x12\x14RenameFolderMetadata\xda\x41\x1aname,destination_folder_id\x82\xd3\xe4\x93\x02\x36\"1/v2/{name=projects/*/buckets/*/folders/**}:rename:\x01*\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa7\x02\n\x15\x44\x65leteFolderRecursive\x12\x37.google.storage.control.v2.DeleteFolderRecursiveRequest\x1a\x1d.google.longrunning.Operation\"\xb5\x01\xca\x41\x36\n\x15google.protobuf.Empty\x12\x1d\x44\x65leteFolderRecursiveMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02?\":/v2/{name=projects/*/buckets/*/folders/**}:deleteRecursive:\x01*\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xde\x01\n\x10GetStorageLayout\x12\x32.google.storage.control.v2.GetStorageLayoutRequest\x1a(.google.storage.control.v2.StorageLayout\"l\xda\x41\x04name\x82\xd3\xe4\x93\x02/\x12-/v2/{name=projects/*/buckets/*/storageLayout}\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xbf\x01\n\x13\x43reateManagedFolder\x12\x35.google.storage.control.v2.CreateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"G\xda\x41\'parent,managed_folder,managed_folder_id\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\x9d\x01\n\x13\x44\x65leteManagedFolder\x12\x35.google.storage.control.v2.DeleteManagedFolderRequest\x1a\x16.google.protobuf.Empty\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetManagedFolder\x12\x32.google.storage.control.v2.GetManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListManagedFolders\x12\x34.google.storage.control.v2.ListManagedFoldersRequest\x1a\x35.google.storage.control.v2.ListManagedFoldersResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd4\x01\n\x13UpdateManagedFolder\x12\x35.google.storage.control.v2.UpdateManagedFolderRequest\x1a(.google.storage.control.v2.ManagedFolder\"\\\xda\x41\x1amanaged_folder,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13managed_folder.name\x12 {bucket=projects/*/buckets/*}/**\x12\xd1\x01\n\x13\x43reateAnywhereCache\x12\x35.google.storage.control.v2.CreateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"d\xca\x41,\n\rAnywhereCache\x12\x1b\x43reateAnywhereCacheMetadata\xda\x41\x15parent,anywhere_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xf9\x01\n\x13UpdateAnywhereCache\x12\x35.google.storage.control.v2.UpdateAnywhereCacheRequest\x1a\x1d.google.longrunning.Operation\"\x8b\x01\xca\x41,\n\rAnywhereCache\x12\x1bUpdateAnywhereCacheMetadata\xda\x41\x1a\x61nywhere_cache,update_mask\x8a\xd3\xe4\x93\x02\x39\x12\x37\n\x13\x61nywhere_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xb1\x01\n\x14\x44isableAnywhereCache\x12\x36.google.storage.control.v2.DisableAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xad\x01\n\x12PauseAnywhereCache\x12\x34.google.storage.control.v2.PauseAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xaf\x01\n\x13ResumeAnywhereCache\x12\x35.google.storage.control.v2.ResumeAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x10GetAnywhereCache\x12\x32.google.storage.control.v2.GetAnywhereCacheRequest\x1a(.google.storage.control.v2.AnywhereCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa9\x01\n\x12ListAnywhereCaches\x12\x34.google.storage.control.v2.ListAnywhereCachesRequest\x1a\x35.google.storage.control.v2.ListAnywhereCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xc2\x01\n\x10\x43reateRapidCache\x12\x32.google.storage.control.v2.CreateRapidCacheRequest\x1a\x1d.google.longrunning.Operation\"[\xca\x41&\n\nRapidCache\x12\x18\x43reateRapidCacheMetadata\xda\x41\x12parent,rapid_cache\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xe6\x01\n\x10UpdateRapidCache\x12\x32.google.storage.control.v2.UpdateRapidCacheRequest\x1a\x1d.google.longrunning.Operation\"\x7f\xca\x41&\n\nRapidCache\x12\x18UpdateRapidCacheMetadata\xda\x41\x17rapid_cache,update_mask\x8a\xd3\xe4\x93\x02\x36\x12\x34\n\x10rapid_cache.name\x12 {bucket=projects/*/buckets/*}/**\x12\xa0\x01\n\rGetRapidCache\x12/.google.storage.control.v2.GetRapidCacheRequest\x1a%.google.storage.control.v2.RapidCache\"7\xda\x41\x04name\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x12\xa0\x01\n\x0fListRapidCaches\x12\x31.google.storage.control.v2.ListRapidCachesRequest\x1a\x32.google.storage.control.v2.ListRapidCachesResponse\"&\xda\x41\x06parent\x8a\xd3\xe4\x93\x02\x17\x12\x15\n\x06parent\x12\x0b{bucket=**}\x12\xd2\x01\n\x1cGetProjectIntelligenceConfig\x12>.google.storage.control.v2.GetProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v2/{name=projects/*/locations/*/intelligenceConfig}\x12\x9d\x02\n\x1fUpdateProjectIntelligenceConfig\x12\x41.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x87\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02_2H/v2/{intelligence_config.name=projects/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xcf\x01\n\x1bGetFolderIntelligenceConfig\x12=.google.storage.control.v2.GetFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v2/{name=folders/*/locations/*/intelligenceConfig}\x12\x9a\x02\n\x1eUpdateFolderIntelligenceConfig\x12@.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x86\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02^2G/v2/{intelligence_config.name=folders/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xe1\x01\n!GetOrganizationIntelligenceConfig\x12\x43.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v2/{name=organizations/*/locations/*/intelligenceConfig}\x12\xac\x02\n$UpdateOrganizationIntelligenceConfig\x12\x46.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest\x1a-.google.storage.control.v2.IntelligenceConfig\"\x8c\x01\xda\x41\x1fintelligence_config,update_mask\x82\xd3\xe4\x93\x02\x64\x32M/v2/{intelligence_config.name=organizations/*/locations/*/intelligenceConfig}:\x13intelligence_config\x12\xa3\x01\n\x0cGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"X\xda\x41\x08resource\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\xaa\x01\n\x0cSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"_\xda\x41\x0fresource,policy\x8a\xd3\xe4\x93\x02G\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12,\n\x08resource\x12 {bucket=projects/*/buckets/*}/**\x12\x96\x02\n\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"\xaa\x01\xda\x41\x14resource,permissions\x8a\xd3\xe4\x93\x02\x8c\x01\x12\x17\n\x08resource\x12\x0b{bucket=**}\x12\x34\n\x08resource\x12({bucket=projects/*/buckets/*}/objects/**\x12;\n\x08resource\x12/{bucket=projects/*/buckets/*}/managedFolders/**\x12\xcb\x01\n\x16GetIntelligenceFinding\x12\x38.google.storage.control.v2.GetIntelligenceFindingRequest\x1a..google.storage.control.v2.IntelligenceFinding\"G\xda\x41\x04name\x82\xd3\xe4\x93\x02:\x12\x38/v2/{name=projects/*/locations/*/intelligenceFindings/*}\x12\xde\x01\n\x18ListIntelligenceFindings\x12:.google.storage.control.v2.ListIntelligenceFindingsRequest\x1a;.google.storage.control.v2.ListIntelligenceFindingsResponse\"I\xda\x41\x06parent\x82\xd3\xe4\x93\x02:\x12\x38/v2/{parent=projects/*/locations/*}/intelligenceFindings\x12\x89\x03\n\x1dSummarizeIntelligenceFindings\x12?.google.storage.control.v2.SummarizeIntelligenceFindingsRequest\x1a@.google.storage.control.v2.SummarizeIntelligenceFindingsResponse\"\xe4\x01\xda\x41\x06parent\x82\xd3\xe4\x93\x02\xd4\x01\x12\x42/v2/{parent=projects/*/locations/*}/intelligenceFindings:summarizeZC\x12\x41/v2/{parent=folders/*/locations/*}/intelligenceFindings:summarizeZI\x12G/v2/{parent=organizations/*/locations/*}/intelligenceFindings:summarize\x12\xef\x01\n\x1eGetIntelligenceFindingRevision\x12@.google.storage.control.v2.GetIntelligenceFindingRevisionRequest\x1a\x36.google.storage.control.v2.IntelligenceFindingRevision\"S\xda\x41\x04name\x82\xd3\xe4\x93\x02\x46\x12\x44/v2/{name=projects/*/locations/*/intelligenceFindings/*/revisions/*}\x12\x82\x02\n ListIntelligenceFindingRevisions\x12\x42.google.storage.control.v2.ListIntelligenceFindingRevisionsRequest\x1a\x43.google.storage.control.v2.ListIntelligenceFindingRevisionsResponse\"U\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x46\x12\x44/v2/{parent=projects/*/locations/*/intelligenceFindings/*}/revisions\x12\xa4\x02\n\x15ViewObjectFullContext\x12\x37.google.storage.control.v2.ViewObjectFullContextRequest\x1a,.google.storage.control.v2.ObjectFullContext\"\xa3\x01\xda\x41\x10name,context_key\xda\x41\x1bname,generation,context_key\x82\xd3\xe4\x93\x02<\x12:/v2/{name=projects/*/buckets/*/objects/**}:viewFullContext\x8a\xd3\xe4\x93\x02*\x12(\n\x04name\x12 {bucket=projects/*/buckets/*}/**\x1a\xa7\x02\xca\x41\x16storage.googleapis.com\xd2\x41\x8a\x02https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/devstorage.read_writeB\xfe\x02\n\x1d\x63om.google.storage.control.v2B\x13StorageControlProtoP\x01Z=cloud.google.com/go/storage/control/apiv2/controlpb;controlpb\xaa\x02\x1fGoogle.Cloud.Storage.Control.V2\xca\x02\x1fGoogle\\Cloud\\Storage\\Control\\V2\xea\x02#Google::Cloud::Storage::Control::V2\xea\x41\x44\n\x1dstorage.googleapis.com/Bucket\x12#projects/{project}/buckets/{bucket}\xea\x41U\n\x1dstorage.googleapis.com/Object\x12\x34projects/{project}/buckets/{bucket}/objects/{object}b\x06proto3" pool = ::Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -46,6 +47,7 @@ module V2 StorageLayout = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.StorageLayout").msgclass StorageLayout::CustomPlacementConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.StorageLayout.CustomPlacementConfig").msgclass StorageLayout::HierarchicalNamespace = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.StorageLayout.HierarchicalNamespace").msgclass + StorageLayout::RapidCacheInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.StorageLayout.RapidCacheInfo").msgclass GetStorageLayoutRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.GetStorageLayoutRequest").msgclass ManagedFolder = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.ManagedFolder").msgclass ManagedFolder::RapidCacheConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.ManagedFolder.RapidCacheConfig").msgclass @@ -118,6 +120,9 @@ module V2 FindingSummary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingSummary").msgclass FindingSummary::SummaryDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingSummary.SummaryDetails").msgclass FindingSummary::SummaryDetails::ResourceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingSummary.SummaryDetails.ResourceType").enummodule + ObjectFullContext = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.ObjectFullContext").msgclass + ObjectFullContext::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.ObjectFullContext.Type").enummodule + ViewObjectFullContextRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.ViewObjectFullContextRequest").msgclass FindingType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingType").enummodule FindingCategory = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingCategory").enummodule FindingSeverity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.storage.control.v2.FindingSeverity").enummodule diff --git a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb index 58d31dc6e04e..af3f6032bd50 100644 --- a/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb +++ b/google-cloud-storage-control-v2/lib/google/storage/control/v2/storage_control_services_pb.rb @@ -136,6 +136,16 @@ class Service rpc :GetIntelligenceFindingRevision, ::Google::Cloud::Storage::Control::V2::GetIntelligenceFindingRevisionRequest, ::Google::Cloud::Storage::Control::V2::IntelligenceFindingRevision # Lists all the revisions of an `IntelligenceFinding` resource. rpc :ListIntelligenceFindingRevisions, ::Google::Cloud::Storage::Control::V2::ListIntelligenceFindingRevisionsRequest, ::Google::Cloud::Storage::Control::V2::ListIntelligenceFindingRevisionsResponse + # Retrieves the full content of an object context, including its key, value, + # and any associated extended data for a given context key. + # + # Object contexts can optionally contain extended data. If an object context + # contains extended data, the metadata payload structure will contain only + # its type URL. To retrieve the full extended data, call this method. + # + # Returns the complete representation of the context as an + # [`ObjectFullContext`][google.storage.control.v2.ObjectFullContext]. + rpc :ViewObjectFullContext, ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest, ::Google::Cloud::Storage::Control::V2::ObjectFullContext end Stub = Service.rpc_stub_class diff --git a/google-cloud-storage-control-v2/proto_docs/google/storage/control/v2/storage_control.rb b/google-cloud-storage-control-v2/proto_docs/google/storage/control/v2/storage_control.rb index e740848b90b4..d0c25b2da737 100644 --- a/google-cloud-storage-control-v2/proto_docs/google/storage/control/v2/storage_control.rb +++ b/google-cloud-storage-control-v2/proto_docs/google/storage/control/v2/storage_control.rb @@ -320,6 +320,9 @@ class DeleteFolderRecursiveMetadata # @return [::Google::Cloud::Storage::Control::V2::StorageLayout::HierarchicalNamespace] # Output only. The bucket's hierarchical namespace configuration. If there is # no configuration, the hierarchical namespace is disabled. + # @!attribute [r] rapid_cache_info + # @return [::Google::Cloud::Storage::Control::V2::StorageLayout::RapidCacheInfo] + # Output only. The Rapid Cache configuration for the bucket. class StorageLayout include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods @@ -343,6 +346,16 @@ class HierarchicalNamespace include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end + + # The Rapid Cache configuration for the bucket. + # @!attribute [r] cache_type + # @return [::String] + # Output only. The type of cache in the bucket. Set to `rapid-cache` or + # `rapid-cache-ultra`, only if there is a cache present. + class RapidCacheInfo + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end end # Request message for GetStorageLayout. @@ -1887,6 +1900,59 @@ module ResourceType end end + # A full representation of an object context. + # @!attribute [rw] type + # @return [::Google::Cloud::Storage::Control::V2::ObjectFullContext::Type] + # The type of the object context. + # @!attribute [rw] key + # @return [::String] + # The key of the object context, which is unique among contexts of an object. + # @!attribute [rw] value + # @return [::String] + # The value of the object context. + # @!attribute [rw] create_time + # @return [::Google::Protobuf::Timestamp] + # The time at which the object context was created. + # @!attribute [rw] update_time + # @return [::Google::Protobuf::Timestamp] + # The time at which the object context was updated. + # @!attribute [rw] extended_data + # @return [::Google::Protobuf::Any] + # The extended data of the object context. + class ObjectFullContext + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + + # Types of object contexts. + module Type + # The type is not specified. + TYPE_UNSPECIFIED = 0 + + # Custom context. + CUSTOM = 1 + + # Google context. + GOOGLE = 2 + end + end + + # Request message for ViewObjectFullContext. + # @!attribute [rw] generation + # @return [::Integer] + # Optional. If present, selects a specific revision of this object (as + # opposed to the latest version, the default). + # @!attribute [rw] context_key + # @return [::String] + # Required. The key of the object context to retrieve. + # @!attribute [rw] name + # @return [::String] + # Required. The name of the object. + # Format: `projects/{project}/buckets/{bucket}/objects/{object}` + class ViewObjectFullContextRequest + include ::Google::Protobuf::MessageExts + extend ::Google::Protobuf::MessageExts::ClassMethods + end + # List the finding types. module FindingType # Finding type is unspecified. diff --git a/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json index fa05517b0ba4..9d85a49fa2b5 100644 --- a/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json +++ b/google-cloud-storage-control-v2/snippets/snippet_metadata_google.storage.control.v2.json @@ -1490,6 +1490,46 @@ "type": "FULL" } ] + }, + { + "region_tag": "storage_v2_generated_StorageControl_ViewObjectFullContext_sync", + "title": "Snippet for the view_object_full_context call in the StorageControl service", + "description": "This is an auto-generated example demonstrating basic usage of Google::Cloud::Storage::Control::V2::StorageControl::Client#view_object_full_context.", + "file": "storage_control/view_object_full_context.rb", + "language": "RUBY", + "client_method": { + "short_name": "view_object_full_context", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client#view_object_full_context", + "async": false, + "parameters": [ + { + "type": "::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest", + "name": "request" + } + ], + "result_type": "::Google::Cloud::Storage::Control::V2::ObjectFullContext", + "client": { + "short_name": "StorageControl::Client", + "full_name": "::Google::Cloud::Storage::Control::V2::StorageControl::Client" + }, + "method": { + "short_name": "ViewObjectFullContext", + "full_name": "google.storage.control.v2.StorageControl.ViewObjectFullContext", + "service": { + "short_name": "StorageControl", + "full_name": "google.storage.control.v2.StorageControl" + } + } + }, + "canonical": true, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 20, + "end": 46, + "type": "FULL" + } + ] } ] } \ No newline at end of file diff --git a/google-cloud-storage-control-v2/snippets/storage_control/view_object_full_context.rb b/google-cloud-storage-control-v2/snippets/storage_control/view_object_full_context.rb new file mode 100644 index 000000000000..df14d52700b0 --- /dev/null +++ b/google-cloud-storage-control-v2/snippets/storage_control/view_object_full_context.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Auto-generated by gapic-generator-ruby. DO NOT EDIT! + +# [START storage_v2_generated_StorageControl_ViewObjectFullContext_sync] +require "google/cloud/storage/control/v2" + +## +# Snippet for the view_object_full_context call in the StorageControl service +# +# This snippet has been automatically generated and should be regarded as a code +# template only. It will require modifications to work: +# - It may require correct/in-range values for request initialization. +# - It may require specifying regional endpoints when creating the service +# client as shown in https://cloud.google.com/ruby/docs/reference. +# +# This is an auto-generated example demonstrating basic usage of +# Google::Cloud::Storage::Control::V2::StorageControl::Client#view_object_full_context. +# +def view_object_full_context + # Create a client object. The client can be reused for multiple calls. + client = Google::Cloud::Storage::Control::V2::StorageControl::Client.new + + # Create a request. To set request fields, pass in keyword arguments. + request = Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new + + # Call the view_object_full_context method. + result = client.view_object_full_context request + + # The returned object is of type Google::Cloud::Storage::Control::V2::ObjectFullContext. + p result +end +# [END storage_v2_generated_StorageControl_ViewObjectFullContext_sync] diff --git a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_paths_test.rb b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_paths_test.rb index ef55fe6d30cb..c23eb6bdd455 100644 --- a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_paths_test.rb +++ b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_paths_test.rb @@ -143,6 +143,18 @@ def test_managed_folder_path end end + def test_object_path + grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + ::Gapic::ServiceStub.stub :new, DummyStub.new do + client = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| + config.credentials = grpc_channel + end + + path = client.object_path project: "value0", bucket: "value1", object: "value2" + assert_equal "projects/value0/buckets/value1/objects/value2", path + end + end + def test_rapid_cache_path grpc_channel = ::GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure ::Gapic::ServiceStub.stub :new, DummyStub.new do diff --git a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_rest_test.rb b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_rest_test.rb index 7debadb4c15d..5c4470e91631 100644 --- a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_rest_test.rb +++ b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_rest_test.rb @@ -1091,6 +1091,62 @@ def test_list_intelligence_finding_revisions end end + def test_view_object_full_context + # Create test objects. + client_result = ::Google::Cloud::Storage::Control::V2::ObjectFullContext.new + http_response = OpenStruct.new body: client_result.to_json + + call_options = {} + + # Create request parameters for a unary method. + generation = 42 + context_key = "hello world" + name = "hello world" + + view_object_full_context_client_stub = ClientStub.new http_response do |_verb, uri:, body:, params:, options:, method_name:| + assert options.metadata.key? :"x-goog-api-client" + assert options.metadata[:"x-goog-api-client"].include? "rest" + refute options.metadata[:"x-goog-api-client"].include? "grpc" + end + + ::Google::Cloud::Storage::Control::V2::StorageControl::Rest::ServiceStub.stub :transcode_view_object_full_context_request, ["", "", {}] do + Gapic::Rest::ClientStub.stub :new, view_object_full_context_client_stub do + # Create client + c = ::Google::Cloud::Storage::Control::V2::StorageControl::Rest::Client.new do |config| + config.credentials = :dummy_value + end + + # Use hash object + c.view_object_full_context({ generation: generation, context_key: context_key, name: name }) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use named arguments + c.view_object_full_context generation: generation, context_key: context_key, name: name do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object + c.view_object_full_context ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new(generation: generation, context_key: context_key, name: name) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use hash object with options + c.view_object_full_context({ generation: generation, context_key: context_key, name: name }, call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Use protobuf object with options + c.view_object_full_context(::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new(generation: generation, context_key: context_key, name: name), call_options) do |_result, response| + assert_equal http_response, response.underlying_op + end + + # Verify method calls + assert_equal 5, view_object_full_context_client_stub.call_count + end + end + end + def test_configure credentials_token = :dummy_value diff --git a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb index 1abe42981c6e..637b1ad98e29 100644 --- a/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb +++ b/google-cloud-storage-control-v2/test/google/cloud/storage/control/v2/storage_control_test.rb @@ -2452,6 +2452,68 @@ def test_list_intelligence_finding_revisions end end + def test_view_object_full_context + # Create GRPC objects. + grpc_response = ::Google::Cloud::Storage::Control::V2::ObjectFullContext.new + grpc_operation = GRPC::ActiveCall::Operation.new nil + grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure + grpc_options = {} + + # Create request parameters for a unary method. + generation = 42 + context_key = "hello world" + name = "hello world" + + view_object_full_context_client_stub = ClientStub.new grpc_response, grpc_operation do |name, request, options:| + assert_equal :view_object_full_context, name + assert_kind_of ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest, request + assert_equal 42, request["generation"] + assert_equal "hello world", request["context_key"] + assert_equal "hello world", request["name"] + refute_nil options + end + + Gapic::ServiceStub.stub :new, view_object_full_context_client_stub do + # Create client + c = ::Google::Cloud::Storage::Control::V2::StorageControl::Client.new do |config| + config.credentials = grpc_channel + end + + # Use hash object + c.view_object_full_context({ generation: generation, context_key: context_key, name: name }) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use named arguments + c.view_object_full_context generation: generation, context_key: context_key, name: name do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object + c.view_object_full_context ::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new(generation: generation, context_key: context_key, name: name) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use hash object with options + c.view_object_full_context({ generation: generation, context_key: context_key, name: name }, grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Use protobuf object with options + c.view_object_full_context(::Google::Cloud::Storage::Control::V2::ViewObjectFullContextRequest.new(generation: generation, context_key: context_key, name: name), grpc_options) do |response, operation| + assert_equal grpc_response, response + assert_equal grpc_operation, operation + end + + # Verify method calls + assert_equal 5, view_object_full_context_client_stub.call_rpc_count + end + end + def test_configure grpc_channel = GRPC::Core::Channel.new "localhost:8888", nil, :this_channel_is_insecure