# frozen_string_literal: true
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/longrunning/operations.proto

require 'google/protobuf'

require 'google/api/annotations_pb'
require 'google/api/client_pb'
require 'google/protobuf/any_pb'
require 'google/protobuf/duration_pb'
require 'google/protobuf/empty_pb'
require 'google/rpc/status_pb'
require 'google/protobuf/descriptor_pb'


descriptor_data = "\n#google/longrunning/operations.proto\x12\x12google.longrunning\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x17google/rpc/status.proto\x1a google/protobuf/descriptor.proto\"\xa8\x01\n\tOperation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x08metadata\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x0c\n\x04\x64one\x18\x03 \x01(\x08\x12#\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.google.rpc.StatusH\x00\x12(\n\x08response\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06result\"#\n\x13GetOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\\\n\x15ListOperationsRequest\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"d\n\x16ListOperationsResponse\x12\x31\n\noperations\x18\x01 \x03(\x0b\x32\x1d.google.longrunning.Operation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"&\n\x16\x43\x61ncelOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"&\n\x16\x44\x65leteOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"P\n\x14WaitOperationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12*\n\x07timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"=\n\rOperationInfo\x12\x15\n\rresponse_type\x18\x01 \x01(\t\x12\x15\n\rmetadata_type\x18\x02 \x01(\t2\xaa\x05\n\nOperations\x12\x94\x01\n\x0eListOperations\x12).google.longrunning.ListOperationsRequest\x1a*.google.longrunning.ListOperationsResponse\"+\xda\x41\x0bname,filter\x82\xd3\xe4\x93\x02\x17\x12\x15/v1/{name=operations}\x12\x7f\n\x0cGetOperation\x12\'.google.longrunning.GetOperationRequest\x1a\x1d.google.longrunning.Operation\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=operations/**}\x12~\n\x0f\x44\x65leteOperation\x12*.google.longrunning.DeleteOperationRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=operations/**}\x12\x88\x01\n\x0f\x43\x61ncelOperation\x12*.google.longrunning.CancelOperationRequest\x1a\x16.google.protobuf.Empty\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$\"\x1f/v1/{name=operations/**}:cancel:\x01*\x12Z\n\rWaitOperation\x12(.google.longrunning.WaitOperationRequest\x1a\x1d.google.longrunning.Operation\"\x00\x1a\x1d\xca\x41\x1alongrunning.googleapis.com:Z\n\x0eoperation_info\x12\x1e.google.protobuf.MethodOptions\x18\x99\x08 \x01(\x0b\x32!.google.longrunning.OperationInfoB\x9d\x01\n\x16\x63om.google.longrunningB\x0fOperationsProtoP\x01ZCcloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb\xf8\x01\x01\xaa\x02\x12Google.LongRunning\xca\x02\x12Google\\LongRunningb\x06proto3"

pool = Google::Protobuf::DescriptorPool.generated_pool

begin
  pool.add_serialized_file(descriptor_data)
rescue TypeError
  # Compatibility code: will be removed in the next major version.
  require 'google/protobuf/descriptor_pb'
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
  parsed.clear_dependency
  serialized = parsed.class.encode(parsed)
  file = pool.add_serialized_file(serialized)
  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
  imports = [
    ["google.protobuf.Any", "google/protobuf/any.proto"],
    ["google.rpc.Status", "google/rpc/status.proto"],
    ["google.protobuf.Duration", "google/protobuf/duration.proto"],
  ]
  imports.each do |type_name, expected_filename|
    import_file = pool.lookup(type_name).file_descriptor
    if import_file.name != expected_filename
      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
    end
  end
  warn "Each proto file must use a consistent fully-qualified name."
  warn "This will become an error in the next major version."
end

module Google
  module Longrunning
    Operation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.Operation").msgclass
    GetOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.GetOperationRequest").msgclass
    ListOperationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.ListOperationsRequest").msgclass
    ListOperationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.ListOperationsResponse").msgclass
    CancelOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.CancelOperationRequest").msgclass
    DeleteOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.DeleteOperationRequest").msgclass
    WaitOperationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.WaitOperationRequest").msgclass
    OperationInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.longrunning.OperationInfo").msgclass
  end
end

#### Source proto file: google/longrunning/operations.proto ####
#
# // Copyright 2024 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
# //
# //     http://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.
#
# syntax = "proto3";
#
# package google.longrunning;
#
# import "google/api/annotations.proto";
# import "google/api/client.proto";
# import "google/protobuf/any.proto";
# import "google/protobuf/duration.proto";
# import "google/protobuf/empty.proto";
# import "google/rpc/status.proto";
# import "google/protobuf/descriptor.proto";
#
# option cc_enable_arenas = true;
# option csharp_namespace = "Google.LongRunning";
# option go_package = "cloud.google.com/go/longrunning/autogen/longrunningpb;longrunningpb";
# option java_multiple_files = true;
# option java_outer_classname = "OperationsProto";
# option java_package = "com.google.longrunning";
# option php_namespace = "Google\\LongRunning";
#
# extend google.protobuf.MethodOptions {
#   // Additional information regarding long-running operations.
#   // In particular, this specifies the types that are returned from
#   // long-running operations.
#   //
#   // Required for methods that return `google.longrunning.Operation`; invalid
#   // otherwise.
#   google.longrunning.OperationInfo operation_info = 1049;
# }
#
# // Manages long-running operations with an API service.
# //
# // When an API method normally takes long time to complete, it can be designed
# // to return [Operation][google.longrunning.Operation] to the client, and the client can use this
# // interface to receive the real response asynchronously by polling the
# // operation resource, or pass the operation resource to another API (such as
# // Google Cloud Pub/Sub API) to receive the response.  Any API service that
# // returns long-running operations should implement the `Operations` interface
# // so developers can have a consistent client experience.
# service Operations {
#   option (google.api.default_host) = "longrunning.googleapis.com";
#
#   // Lists operations that match the specified filter in the request. If the
#   // server doesn't support this method, it returns `UNIMPLEMENTED`.
#   //
#   // NOTE: the `name` binding allows API services to override the binding
#   // to use different resource name schemes, such as `users/*/operations`. To
#   // override the binding, API services can add a binding such as
#   // `"/v1/{name=users/*}/operations"` to their service configuration.
#   // For backwards compatibility, the default name includes the operations
#   // collection id, however overriding users must ensure the name binding
#   // is the parent resource, without the operations collection id.
#   rpc ListOperations(ListOperationsRequest) returns (ListOperationsResponse) {
#     option (google.api.http) = {
#       get: "/v1/{name=operations}"
#     };
#     option (google.api.method_signature) = "name,filter";
#   }
#
#   // Gets the latest state of a long-running operation.  Clients can use this
#   // method to poll the operation result at intervals as recommended by the API
#   // service.
#   rpc GetOperation(GetOperationRequest) returns (Operation) {
#     option (google.api.http) = {
#       get: "/v1/{name=operations/**}"
#     };
#     option (google.api.method_signature) = "name";
#   }
#
#   // Deletes a long-running operation. This method indicates that the client is
#   // no longer interested in the operation result. It does not cancel the
#   // operation. If the server doesn't support this method, it returns
#   // `google.rpc.Code.UNIMPLEMENTED`.
#   rpc DeleteOperation(DeleteOperationRequest) returns (google.protobuf.Empty) {
#     option (google.api.http) = {
#       delete: "/v1/{name=operations/**}"
#     };
#     option (google.api.method_signature) = "name";
#   }
#
#   // Starts asynchronous cancellation on a long-running operation.  The server
#   // makes a best effort to cancel the operation, but success is not
#   // guaranteed.  If the server doesn't support this method, it returns
#   // `google.rpc.Code.UNIMPLEMENTED`.  Clients can use
#   // [Operations.GetOperation][google.longrunning.Operations.GetOperation] or
#   // other methods to check whether the cancellation succeeded or whether the
#   // operation completed despite cancellation. On successful cancellation,
#   // the operation is not deleted; instead, it becomes an operation with
#   // an [Operation.error][google.longrunning.Operation.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
#   // corresponding to `Code.CANCELLED`.
#   rpc CancelOperation(CancelOperationRequest) returns (google.protobuf.Empty) {
#     option (google.api.http) = {
#       post: "/v1/{name=operations/**}:cancel"
#       body: "*"
#     };
#     option (google.api.method_signature) = "name";
#   }
#
#   // Waits until the specified long-running operation is done or reaches at most
#   // a specified timeout, returning the latest state.  If the operation is
#   // already done, the latest state is immediately returned.  If the timeout
#   // specified is greater than the default HTTP/RPC timeout, the HTTP/RPC
#   // timeout is used.  If the server does not support this method, it returns
#   // `google.rpc.Code.UNIMPLEMENTED`.
#   // Note that this method is on a best-effort basis.  It may return the latest
#   // state before the specified timeout (including immediately), meaning even an
#   // immediate response is no guarantee that the operation is done.
#   rpc WaitOperation(WaitOperationRequest) returns (Operation) {
#   }
# }
#
# // This resource represents a long-running operation that is the result of a
# // network API call.
# message Operation {
#   // The server-assigned name, which is only unique within the same service that
#   // originally returns it. If you use the default HTTP mapping, the
#   // `name` should be a resource name ending with `operations/{unique_id}`.
#   string name = 1;
#
#   // Service-specific metadata associated with the operation.  It typically
#   // contains progress information and common metadata such as create time.
#   // Some services might not provide such metadata.  Any method that returns a
#   // long-running operation should document the metadata type, if any.
#   google.protobuf.Any metadata = 2;
#
#   // If the value is `false`, it means the operation is still in progress.
#   // If `true`, the operation is completed, and either `error` or `response` is
#   // available.
#   bool done = 3;
#
#   // The operation result, which can be either an `error` or a valid `response`.
#   // If `done` == `false`, neither `error` nor `response` is set.
#   // If `done` == `true`, exactly one of `error` or `response` is set.
#   oneof result {
#     // The error result of the operation in case of failure or cancellation.
#     google.rpc.Status error = 4;
#
#     // The normal response of the operation in case of success.  If the original
#     // method returns no data on success, such as `Delete`, the response is
#     // `google.protobuf.Empty`.  If the original method is standard
#     // `Get`/`Create`/`Update`, the response should be the resource.  For other
#     // methods, the response should have the type `XxxResponse`, where `Xxx`
#     // is the original method name.  For example, if the original method name
#     // is `TakeSnapshot()`, the inferred response type is
#     // `TakeSnapshotResponse`.
#     google.protobuf.Any response = 5;
#   }
# }
#
# // The request message for [Operations.GetOperation][google.longrunning.Operations.GetOperation].
# message GetOperationRequest {
#   // The name of the operation resource.
#   string name = 1;
# }
#
# // The request message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
# message ListOperationsRequest {
#   // The name of the operation's parent resource.
#   string name = 4;
#
#   // The standard list filter.
#   string filter = 1;
#
#   // The standard list page size.
#   int32 page_size = 2;
#
#   // The standard list page token.
#   string page_token = 3;
# }
#
# // The response message for [Operations.ListOperations][google.longrunning.Operations.ListOperations].
# message ListOperationsResponse {
#   // A list of operations that matches the specified filter in the request.
#   repeated Operation operations = 1;
#
#   // The standard List next-page token.
#   string next_page_token = 2;
# }
#
# // The request message for [Operations.CancelOperation][google.longrunning.Operations.CancelOperation].
# message CancelOperationRequest {
#   // The name of the operation resource to be cancelled.
#   string name = 1;
# }
#
# // The request message for [Operations.DeleteOperation][google.longrunning.Operations.DeleteOperation].
# message DeleteOperationRequest {
#   // The name of the operation resource to be deleted.
#   string name = 1;
# }
#
# // The request message for [Operations.WaitOperation][google.longrunning.Operations.WaitOperation].
# message WaitOperationRequest {
#   // The name of the operation resource to wait on.
#   string name = 1;
#
#   // The maximum duration to wait before timing out. If left blank, the wait
#   // will be at most the time permitted by the underlying HTTP/RPC protocol.
#   // If RPC context deadline is also specified, the shorter one will be used.
#   google.protobuf.Duration timeout = 2;
# }
#
# // A message representing the message types used by a long-running operation.
# //
# // Example:
# //
# //   rpc LongRunningRecognize(LongRunningRecognizeRequest)
# //       returns (google.longrunning.Operation) {
# //     option (google.longrunning.operation_info) = {
# //       response_type: "LongRunningRecognizeResponse"
# //       metadata_type: "LongRunningRecognizeMetadata"
# //     };
# //   }
# message OperationInfo {
#   // Required. The message name of the primary return type for this
#   // long-running operation.
#   // This type will be used to deserialize the LRO's response.
#   //
#   // If the response is in a different package from the rpc, a fully-qualified
#   // message name must be used (e.g. `google.protobuf.Struct`).
#   //
#   // Note: Altering this value constitutes a breaking change.
#   string response_type = 1;
#
#   // Required. The message name of the metadata type for this long-running
#   // operation.
#   //
#   // If the response is in a different package from the rpc, a fully-qualified
#   // message name must be used (e.g. `google.protobuf.Struct`).
#   //
#   // Note: Altering this value constitutes a breaking change.
#   string metadata_type = 2;
# }
