google-api-ruby-client/generated/google/apis/pubsublite_v1/classes.rb

462 lines
17 KiB
Ruby

# Copyright 2015 Google Inc.
#
# 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