# Copyright 2020 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. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module PubsubliteV1 # The request message for Operations.CancelOperation. class CancelOperationRequest include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The throughput capacity configuration for each partition. class Capacity include Google::Apis::Core::Hashable # Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16. # Corresponds to the JSON property `publishMibPerSec` # @return [Fixnum] attr_accessor :publish_mib_per_sec # Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 32. # Corresponds to the JSON property `subscribeMibPerSec` # @return [Fixnum] attr_accessor :subscribe_mib_per_sec def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @publish_mib_per_sec = args[:publish_mib_per_sec] if args.key?(:publish_mib_per_sec) @subscribe_mib_per_sec = args[:subscribe_mib_per_sec] if args.key?(:subscribe_mib_per_sec) end end # Request for CommitCursor. class CommitCursorRequest include Google::Apis::Core::Hashable # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `cursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :cursor # The partition for which to update the cursor. Partitions are zero indexed, so ` # partition` must be in the range [0, topic.num_partitions). # Corresponds to the JSON property `partition` # @return [Fixnum] attr_accessor :partition def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cursor = args[:cursor] if args.key?(:cursor) @partition = args[:partition] if args.key?(:partition) end end # Response for CommitCursor. class CommitCursorResponse include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # Compute the current head cursor for a partition. class ComputeHeadCursorRequest include Google::Apis::Core::Hashable # Required. The partition for which we should compute the head cursor. # Corresponds to the JSON property `partition` # @return [Fixnum] attr_accessor :partition def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @partition = args[:partition] if args.key?(:partition) end end # Response containing the head cursor for the requested topic and partition. class ComputeHeadCursorResponse include Google::Apis::Core::Hashable # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `headCursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :head_cursor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @head_cursor = args[:head_cursor] if args.key?(:head_cursor) end end # Compute statistics about a range of messages in a given topic and partition. class ComputeMessageStatsRequest include Google::Apis::Core::Hashable # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `endCursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :end_cursor # Required. The partition for which we should compute message stats. # Corresponds to the JSON property `partition` # @return [Fixnum] attr_accessor :partition # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `startCursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :start_cursor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_cursor = args[:end_cursor] if args.key?(:end_cursor) @partition = args[:partition] if args.key?(:partition) @start_cursor = args[:start_cursor] if args.key?(:start_cursor) end end # Response containing stats for messages in the requested topic and partition. class ComputeMessageStatsResponse include Google::Apis::Core::Hashable # The number of quota bytes accounted to these messages. # Corresponds to the JSON property `messageBytes` # @return [Fixnum] attr_accessor :message_bytes # The count of messages. # Corresponds to the JSON property `messageCount` # @return [Fixnum] attr_accessor :message_count # The minimum event timestamp across these messages. For the purposes of this # computation, if a message does not have an event time, we use the publish time. # The timestamp will be unset if there are no messages. # Corresponds to the JSON property `minimumEventTime` # @return [String] attr_accessor :minimum_event_time # The minimum publish timestamp across these messages. Note that publish # timestamps within a partition are not guaranteed to be non-decreasing. The # timestamp will be unset if there are no messages. # Corresponds to the JSON property `minimumPublishTime` # @return [String] attr_accessor :minimum_publish_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @message_bytes = args[:message_bytes] if args.key?(:message_bytes) @message_count = args[:message_count] if args.key?(:message_count) @minimum_event_time = args[:minimum_event_time] if args.key?(:minimum_event_time) @minimum_publish_time = args[:minimum_publish_time] if args.key?(:minimum_publish_time) end end # Compute the corresponding cursor for a publish or event time in a topic # partition. class ComputeTimeCursorRequest include Google::Apis::Core::Hashable # Required. The partition for which we should compute the cursor. # Corresponds to the JSON property `partition` # @return [Fixnum] attr_accessor :partition # A target publish or event time. Can be used for seeking to or retrieving the # corresponding cursor. # Corresponds to the JSON property `target` # @return [Google::Apis::PubsubliteV1::TimeTarget] attr_accessor :target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @partition = args[:partition] if args.key?(:partition) @target = args[:target] if args.key?(:target) end end # Response containing the cursor corresponding to a publish or event time in a # topic partition. class ComputeTimeCursorResponse include Google::Apis::Core::Hashable # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `cursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :cursor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cursor = args[:cursor] if args.key?(:cursor) end end # A cursor that describes the position of a message within a topic partition. class Cursor include Google::Apis::Core::Hashable # The offset of a message within a topic partition. Must be greater than or # equal 0. # Corresponds to the JSON property `offset` # @return [Fixnum] attr_accessor :offset def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @offset = args[:offset] if args.key?(:offset) end end # The settings for a subscription's message delivery. class DeliveryConfig include Google::Apis::Core::Hashable # The DeliveryRequirement for this subscription. # Corresponds to the JSON property `deliveryRequirement` # @return [String] attr_accessor :delivery_requirement def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @delivery_requirement = args[:delivery_requirement] if args.key?(:delivery_requirement) end end # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. # protobuf.Empty) returns (google.protobuf.Empty); ` class Empty include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The response message for Operations.ListOperations. class ListOperationsResponse include Google::Apis::Core::Hashable # The standard List next-page token. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # A list of operations that matches the specified filter in the request. # Corresponds to the JSON property `operations` # @return [Array] attr_accessor :operations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @operations = args[:operations] if args.key?(:operations) end end # Response for ListPartitionCursors class ListPartitionCursorsResponse include Google::Apis::Core::Hashable # A token, which can be sent as `page_token` to retrieve the next page. If this # field is omitted, there are no subsequent pages. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The partition cursors from this request. # Corresponds to the JSON property `partitionCursors` # @return [Array] attr_accessor :partition_cursors def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @partition_cursors = args[:partition_cursors] if args.key?(:partition_cursors) end end # Response for ListReservationTopics. class ListReservationTopicsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page of results. # If this field is omitted, there are no more results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The names of topics attached to the reservation. The order of the topics is # unspecified. # Corresponds to the JSON property `topics` # @return [Array] attr_accessor :topics def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @topics = args[:topics] if args.key?(:topics) end end # Response for ListReservations. class ListReservationsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page of results. # If this field is omitted, there are no more results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of reservation in the requested parent. The order of the reservations # is unspecified. # Corresponds to the JSON property `reservations` # @return [Array] attr_accessor :reservations def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @reservations = args[:reservations] if args.key?(:reservations) end end # Response for ListSubscriptions. class ListSubscriptionsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page of results. # If this field is omitted, there are no more results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of subscriptions in the requested parent. The order of the # subscriptions is unspecified. # Corresponds to the JSON property `subscriptions` # @return [Array] attr_accessor :subscriptions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @subscriptions = args[:subscriptions] if args.key?(:subscriptions) end end # Response for ListTopicSubscriptions. class ListTopicSubscriptionsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page of results. # If this field is omitted, there are no more results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The names of subscriptions attached to the topic. The order of the # subscriptions is unspecified. # Corresponds to the JSON property `subscriptions` # @return [Array] attr_accessor :subscriptions def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @subscriptions = args[:subscriptions] if args.key?(:subscriptions) end end # Response for ListTopics. class ListTopicsResponse include Google::Apis::Core::Hashable # A token that can be sent as `page_token` to retrieve the next page of results. # If this field is omitted, there are no more results. # Corresponds to the JSON property `nextPageToken` # @return [String] attr_accessor :next_page_token # The list of topic in the requested parent. The order of the topics is # unspecified. # Corresponds to the JSON property `topics` # @return [Array] attr_accessor :topics def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @next_page_token = args[:next_page_token] if args.key?(:next_page_token) @topics = args[:topics] if args.key?(:topics) end end # This resource represents a long-running operation that is the result of a # network API call. class Operation include Google::Apis::Core::Hashable # 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. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::PubsubliteV1::Status] attr_accessor :error # 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. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # 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``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # 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`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # Metadata for long running operations. class OperationMetadata include Google::Apis::Core::Hashable # The time the operation was created. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The time the operation finished running. Not set if the operation has not # completed. # Corresponds to the JSON property `endTime` # @return [String] attr_accessor :end_time # Resource path for the target of the operation. For example, targets of seeks # are subscription resources, structured like: projects/`project_number`/ # locations/`location`/subscriptions/`subscription_id` # Corresponds to the JSON property `target` # @return [String] attr_accessor :target # Name of the verb executed by the operation. # Corresponds to the JSON property `verb` # @return [String] attr_accessor :verb def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @end_time = args[:end_time] if args.key?(:end_time) @target = args[:target] if args.key?(:target) @verb = args[:verb] if args.key?(:verb) end end # The settings for a topic's partitions. class PartitionConfig include Google::Apis::Core::Hashable # The throughput capacity configuration for each partition. # Corresponds to the JSON property `capacity` # @return [Google::Apis::PubsubliteV1::Capacity] attr_accessor :capacity # The number of partitions in the topic. Must be at least 1. Once a topic has # been created the number of partitions can be increased but not decreased. # Message ordering is not guaranteed across a topic resize. For more information # see https://cloud.google.com/pubsub/lite/docs/topics#scaling_capacity # Corresponds to the JSON property `count` # @return [Fixnum] attr_accessor :count # DEPRECATED: Use capacity instead which can express a superset of # configurations. Every partition in the topic is allocated throughput # equivalent to `scale` times the standard partition throughput (4 MiB/s). This # is also reflected in the cost of this topic; a topic with `scale` of 2 and # count of 10 is charged for 20 partitions. This value must be in the range [1,4] # . # Corresponds to the JSON property `scale` # @return [Fixnum] attr_accessor :scale def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @capacity = args[:capacity] if args.key?(:capacity) @count = args[:count] if args.key?(:count) @scale = args[:scale] if args.key?(:scale) end end # A pair of a Cursor and the partition it is for. class PartitionCursor include Google::Apis::Core::Hashable # A cursor that describes the position of a message within a topic partition. # Corresponds to the JSON property `cursor` # @return [Google::Apis::PubsubliteV1::Cursor] attr_accessor :cursor # The partition this is for. # Corresponds to the JSON property `partition` # @return [Fixnum] attr_accessor :partition def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cursor = args[:cursor] if args.key?(:cursor) @partition = args[:partition] if args.key?(:partition) end end # Metadata about a reservation resource. class Reservation include Google::Apis::Core::Hashable # The name of the reservation. Structured like: projects/`project_number`/ # locations/`location`/reservations/`reservation_id` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The reserved throughput capacity. Every unit of throughput capacity is # equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages. # Any topics which are declared as using capacity from a Reservation will # consume resources from this reservation instead of being charged individually. # Corresponds to the JSON property `throughputCapacity` # @return [Fixnum] attr_accessor :throughput_capacity def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @throughput_capacity = args[:throughput_capacity] if args.key?(:throughput_capacity) end end # The settings for this topic's Reservation usage. class ReservationConfig include Google::Apis::Core::Hashable # The Reservation to use for this topic's throughput capacity. Structured like: # projects/`project_number`/locations/`location`/reservations/`reservation_id` # Corresponds to the JSON property `throughputReservation` # @return [String] attr_accessor :throughput_reservation def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @throughput_reservation = args[:throughput_reservation] if args.key?(:throughput_reservation) end end # The settings for a topic's message retention. class RetentionConfig include Google::Apis::Core::Hashable # The provisioned storage, in bytes, per partition. If the number of bytes # stored in any of the topic's partitions grows beyond this value, older # messages will be dropped to make room for newer ones, regardless of the value # of `period`. # Corresponds to the JSON property `perPartitionBytes` # @return [Fixnum] attr_accessor :per_partition_bytes # How long a published message is retained. If unset, messages will be retained # as long as the bytes retained for each partition is below `per_partition_bytes` # . # Corresponds to the JSON property `period` # @return [String] attr_accessor :period def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @per_partition_bytes = args[:per_partition_bytes] if args.key?(:per_partition_bytes) @period = args[:period] if args.key?(:period) end end # Request for SeekSubscription. class SeekSubscriptionRequest include Google::Apis::Core::Hashable # Seek to a named position with respect to the message backlog. # Corresponds to the JSON property `namedTarget` # @return [String] attr_accessor :named_target # A target publish or event time. Can be used for seeking to or retrieving the # corresponding cursor. # Corresponds to the JSON property `timeTarget` # @return [Google::Apis::PubsubliteV1::TimeTarget] attr_accessor :time_target def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @named_target = args[:named_target] if args.key?(:named_target) @time_target = args[:time_target] if args.key?(:time_target) end end # Response for SeekSubscription long running operation. class SeekSubscriptionResponse include Google::Apis::Core::Hashable def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) end end # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: # //cloud.google.com/apis/design/errors). class Status include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any user-facing # error message should be localized and sent in the google.rpc.Status.details # field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # Metadata about a subscription resource. class Subscription include Google::Apis::Core::Hashable # The settings for a subscription's message delivery. # Corresponds to the JSON property `deliveryConfig` # @return [Google::Apis::PubsubliteV1::DeliveryConfig] attr_accessor :delivery_config # The name of the subscription. Structured like: projects/`project_number`/ # locations/`location`/subscriptions/`subscription_id` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The name of the topic this subscription is attached to. Structured like: # projects/`project_number`/locations/`location`/topics/`topic_id` # Corresponds to the JSON property `topic` # @return [String] attr_accessor :topic def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @delivery_config = args[:delivery_config] if args.key?(:delivery_config) @name = args[:name] if args.key?(:name) @topic = args[:topic] if args.key?(:topic) end end # A target publish or event time. Can be used for seeking to or retrieving the # corresponding cursor. class TimeTarget include Google::Apis::Core::Hashable # Request the cursor of the first message with event time greater than or equal # to `event_time`. If messages are missing an event time, the publish time is # used as a fallback. As event times are user supplied, subsequent messages may # have event times less than `event_time` and should be filtered by the client, # if necessary. # Corresponds to the JSON property `eventTime` # @return [String] attr_accessor :event_time # Request the cursor of the first message with publish time greater than or # equal to `publish_time`. All messages thereafter are guaranteed to have # publish times >= `publish_time`. # Corresponds to the JSON property `publishTime` # @return [String] attr_accessor :publish_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @event_time = args[:event_time] if args.key?(:event_time) @publish_time = args[:publish_time] if args.key?(:publish_time) end end # Metadata about a topic resource. class Topic include Google::Apis::Core::Hashable # The name of the topic. Structured like: projects/`project_number`/locations/` # location`/topics/`topic_id` # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The settings for a topic's partitions. # Corresponds to the JSON property `partitionConfig` # @return [Google::Apis::PubsubliteV1::PartitionConfig] attr_accessor :partition_config # The settings for this topic's Reservation usage. # Corresponds to the JSON property `reservationConfig` # @return [Google::Apis::PubsubliteV1::ReservationConfig] attr_accessor :reservation_config # The settings for a topic's message retention. # Corresponds to the JSON property `retentionConfig` # @return [Google::Apis::PubsubliteV1::RetentionConfig] attr_accessor :retention_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @name = args[:name] if args.key?(:name) @partition_config = args[:partition_config] if args.key?(:partition_config) @reservation_config = args[:reservation_config] if args.key?(:reservation_config) @retention_config = args[:retention_config] if args.key?(:retention_config) end end # Response for GetTopicPartitions. class TopicPartitions include Google::Apis::Core::Hashable # The number of partitions in the topic. # Corresponds to the JSON property `partitionCount` # @return [Fixnum] attr_accessor :partition_count def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @partition_count = args[:partition_count] if args.key?(:partition_count) end end end end end