462 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			462 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Ruby
		
	
	
	
|  | # 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 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 | ||
|  |        | ||
|  |       # 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 | ||
|  |        | ||
|  |       # 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); ` The JSON representation for | ||
|  |       # `Empty` is empty JSON object ````. | ||
|  |       class Empty | ||
|  |         include Google::Apis::Core::Hashable | ||
|  |        | ||
|  |         def initialize(**args) | ||
|  |            update!(**args) | ||
|  |         end | ||
|  |        | ||
|  |         # Update properties of this object | ||
|  |         def update!(**args) | ||
|  |         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<Google::Apis::PubsubliteV1::PartitionCursor>] | ||
|  |         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 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<Google::Apis::PubsubliteV1::Subscription>] | ||
|  |         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<String>] | ||
|  |         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<Google::Apis::PubsubliteV1::Topic>] | ||
|  |         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 | ||
|  |        | ||
|  |       # 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. | ||
|  |         # 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 | ||
|  |        | ||
|  |       # 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 | ||
|  |        | ||
|  |       # 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 | ||
|  |        | ||
|  |       # 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 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) | ||
|  |           @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 |