lib/azure/service_bus/queue.rb in stuartpreston-azure-sdk-for-ruby-0.7.1 vs lib/azure/service_bus/queue.rb in stuartpreston-azure-sdk-for-ruby-0.7.2

- old
+ new

@@ -1,230 +1,230 @@ -#------------------------------------------------------------------------- -# # Copyright (c) Microsoft and contributors. All rights reserved. -# -# 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 'azure/service_bus/resource' - -module Azure - module ServiceBus - class Queue < Resource - # Public: Initialize the queue. - # - # ==== Attributes - # - # * +name+ - A String with the name of the queue. - # * +options+ - The resource options Hash - # - # ==== Options - # - # Accepted key/value pairs in options parameter are: - # * +:default_message_time_to_live+ - XML datetime. Determines how long a message lives in the associated subscriptions. - # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication. - # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue. - # * +:dead_lettering_on_message_expiration:+ - Boolean. This field controls how the Service Bus handles a message whose TTL has expired. - # * +:lock_duration+ - XML datetime. Determines the amount of time in seconds in which a message should be locked for processing by a receiver. - # * +:max_delivery_count+ - Number. A message is automatically deadlettered after this number of deliveries. - # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes - # * +:message_count+ - Number. Displays the number of messages currently in the queue. - # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property - # * +:requires_session+ - Boolean. If set to true, the queue will be session-aware and only SessionReceiver will be supported. - # * +:size_in_bytes+ - Number. Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. - # - def initialize(name, options = {}) - normalized_options = {} - normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live) - normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window) - normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations) - normalized_options["DeadLetteringOnMessageExpiration"] = options[:dead_lettering_on_message_expiration].to_s if options.has_key?(:dead_lettering_on_message_expiration) - normalized_options["LockDuration"] = options[:lock_duration].to_s if options.has_key?(:lock_duration) - normalized_options["MaxDeliveryCount"] = options[:max_delivery_count].to_s if options.has_key?(:max_delivery_count) - normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes) - normalized_options["MessageCount"] = options[:message_count].to_s if options.has_key?(:message_count) - normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection) - normalized_options["RequiresSession"] = options[:requires_session].to_s if options.has_key?(:requires_session) - normalized_options["SizeInBytes"] = options[:size_in_bytes].to_s if options.has_key?(:size_in_bytes) - - super(name, normalized_options) - end - - # MessageCount: Number - # - # Displays the number of messages currently in the queue. - def message_count - to_i description['MessageCount'] - end - - def message_count=(val) - _set 'MessageCount', val - end - - # LockDuration: XML datetime - # - # Determines the amount of time in seconds in which a message should be locked for processing by a receiver. - # After this period, the message is unlocked and available for consumption by the next receiver. Settable - # only at queue creation time: - # - # Range: 0 - 5 minutes. 0 means that the message is not locked - # Default: 30 seconds - def lock_duration - to_interval description['LockDuration'] - end - - def lock_duration=(val) - _set 'LockDuration', val - end - - # RequiresSession: True, False - # - # Settable only at queue creation time. If set to true, the queue will be session-aware and only SessionReceiver - # will be supported. Session-aware queues are not supported through REST. - # - # Default for durable queue: false - def requires_session - to_bool description['RequiresSession'] - end - - def requires_session=(val) - _set 'RequiresSession', val - end - - # DeadLetteringOnMessageExpiration: True, False - # - # This field controls how the Service Bus handles a message whose TTL has expired. If it is enabled and a message - # expires, the Service Bus moves the message from the queue into the queue's dead-letter sub-queue. If disabled, - # message will be permanently deleted from the queue. Settable only at queue creation time. - # - # Default: false - def dead_lettering_on_message_expiration - to_bool description['DeadLetteringOnMessageExpiration'] - end - - def enable_dead_lettering_on_message_expiration=(val) - _set 'DeadLetteringOnMessageExpiration', val - end - - # MaxDeliveryCount: Number - # - # A message is automatically deadlettered after this number of deliveries. - def max_delivery_count - to_i description['MaxDeliveryCount'] - end - - def max_delivery_count=(val) - _set 'MaxDeliveryCount', val - end - - # MaxSizeInMegaBytes: Number - # - # Specifies the maximum queue size in megabytes. Any attempt to enqueue a message that will cause the queue to - # exceed this value will fail. You can only set this parameter at queue creation time using the following values: - # - # Range: 1 - 1024 (valid values are 1024, 2048, 3072, 4096, 5120) - # Default: 1*1024 (valid values are 1024, 2048, 3072, 4096, 5120) - def max_size_in_megabytes - to_i description['MaxSizeInMegabytes'] - end - - def max_size_in_megabytes=(val) - _set 'MaxSizeInMegabytes', val - end - - # SizeinBytes: Number - # - # Reflects the actual bytes that messages in the queue currently occupy toward the queue's quota. - # - # Range: 0 - MaxTopicSizeinMegaBytes - def size_in_bytes - to_i description['SizeInBytes'] - end - - def size_in_bytes=(val) - _set 'SizeInBytes', val - end - - - # DefaultMessageTimeToLive: XML datetime - # - # Depending on whether DeadLettering is enabled, a message is automatically moved to the DeadLetterQueue or - # deleted if it has been stored in the queue for longer than the specified time. This value is overwritten - # by a TTL specified on the message if and only if the message TTL is smaller than the TTL set on the queue. - # This value is immutable after the Queue has been created: - # - # Range: 1 second - TimeSpan.MaxValue - # Default: TimeSpan.MaxValue - def default_message_time_to_live - to_interval description['DefaultMessageTimeToLive'] - end - - def default_message_time_to_live=(val) - _set 'DefaultMessageTimeToLive', val - end - - # RequiresDuplicateDetection: True, False - # - # Settable only at queue creation time. - # - # Default for durable queue: false - def requires_duplicate_detection - to_bool description['RequiresDuplicateDetection'] - end - - def requires_duplicate_detection=(val) - _set 'RequiresDuplicateDetection', val - end - - # DuplicateDetectionHistoryTimeWindow - # - # Specifies the time span during which the Service Bus will detect message duplication. - # - # Range: 1 second - 7 days - # Default: 10 minutes - def duplicate_detection_history_time_window - to_interval description['DuplicateDetectionHistoryTimeWindow'] - end - - def duplicate_detection_history_time_window=(val) - _set 'DuplicateDetectionHistoryTimeWindow', val - end - - # EnableBatchedOperations - # - # Enables or disables service side batching behavior when performing operations for the specific queue. When - # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient. - # - # If user wants lower operation latency then they can disable this feature. - def enable_batched_operations - to_bool description['EnableBatchedOperations'] - end - - def enable_batched_operations=(val) - _set 'EnableBatchedOperations', val - end - - def ordered_props - [ - 'LockDuration', - 'MaxSizeInMegabytes', - 'RequiresDuplicateDetection', - 'RequiresSession', - 'DefaultMessageTimeToLive', - 'DeadLetteringOnMessageExpiration', - 'DuplicateDetectionHistoryTimeWindow', - 'MaxDeliveryCount', - 'EnableBatchedOperations', - 'SizeInBytes', - 'MessageCount' - ] - end - end - end +#------------------------------------------------------------------------- +# # Copyright (c) Microsoft and contributors. All rights reserved. +# +# 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 'azure/service_bus/resource' + +module Azure + module ServiceBus + class Queue < Resource + # Public: Initialize the queue. + # + # ==== Attributes + # + # * +name+ - A String with the name of the queue. + # * +options+ - The resource options Hash + # + # ==== Options + # + # Accepted key/value pairs in options parameter are: + # * +:default_message_time_to_live+ - XML datetime. Determines how long a message lives in the associated subscriptions. + # * +:duplicate_detection_history_time_window+ - XML datetime. Specifies the time span during which the Service Bus will detect message duplication. + # * +:enable_batched_operations+ - Boolean. Enables or disables service side batching behavior when performing operations for the specific queue. + # * +:dead_lettering_on_message_expiration:+ - Boolean. This field controls how the Service Bus handles a message whose TTL has expired. + # * +:lock_duration+ - XML datetime. Determines the amount of time in seconds in which a message should be locked for processing by a receiver. + # * +:max_delivery_count+ - Number. A message is automatically deadlettered after this number of deliveries. + # * +:max_size_in_megabytes+ - Number. Specifies the maximum topic size in megabytes + # * +:message_count+ - Number. Displays the number of messages currently in the queue. + # * +:requires_duplicate_detection+ - Boolean. If enabled, the topic will detect duplicate messages within the time span specified by the DuplicateDetectionHistoryTimeWindow property + # * +:requires_session+ - Boolean. If set to true, the queue will be session-aware and only SessionReceiver will be supported. + # * +:size_in_bytes+ - Number. Reflects the actual bytes toward the topic quota that messages in the topic currently occupy. + # + def initialize(name, options = {}) + normalized_options = {} + normalized_options["DefaultMessageTimeToLive"] = options[:default_message_time_to_live].to_s if options.has_key?(:default_message_time_to_live) + normalized_options["DuplicateDetectionHistoryTimeWindow"] = options[:duplicate_detection_history_time_window].to_s if options.has_key?(:duplicate_detection_history_time_window) + normalized_options["EnableBatchedOperations"] = options[:enable_batched_operations].to_s if options.has_key?(:enable_batched_operations) + normalized_options["DeadLetteringOnMessageExpiration"] = options[:dead_lettering_on_message_expiration].to_s if options.has_key?(:dead_lettering_on_message_expiration) + normalized_options["LockDuration"] = options[:lock_duration].to_s if options.has_key?(:lock_duration) + normalized_options["MaxDeliveryCount"] = options[:max_delivery_count].to_s if options.has_key?(:max_delivery_count) + normalized_options["MaxSizeInMegabytes"] = options[:max_size_in_megabytes].to_s if options.has_key?(:max_size_in_megabytes) + normalized_options["MessageCount"] = options[:message_count].to_s if options.has_key?(:message_count) + normalized_options["RequiresDuplicateDetection"] = options[:requires_duplicate_detection].to_s if options.has_key?(:requires_duplicate_detection) + normalized_options["RequiresSession"] = options[:requires_session].to_s if options.has_key?(:requires_session) + normalized_options["SizeInBytes"] = options[:size_in_bytes].to_s if options.has_key?(:size_in_bytes) + + super(name, normalized_options) + end + + # MessageCount: Number + # + # Displays the number of messages currently in the queue. + def message_count + to_i description['MessageCount'] + end + + def message_count=(val) + _set 'MessageCount', val + end + + # LockDuration: XML datetime + # + # Determines the amount of time in seconds in which a message should be locked for processing by a receiver. + # After this period, the message is unlocked and available for consumption by the next receiver. Settable + # only at queue creation time: + # + # Range: 0 - 5 minutes. 0 means that the message is not locked + # Default: 30 seconds + def lock_duration + to_interval description['LockDuration'] + end + + def lock_duration=(val) + _set 'LockDuration', val + end + + # RequiresSession: True, False + # + # Settable only at queue creation time. If set to true, the queue will be session-aware and only SessionReceiver + # will be supported. Session-aware queues are not supported through REST. + # + # Default for durable queue: false + def requires_session + to_bool description['RequiresSession'] + end + + def requires_session=(val) + _set 'RequiresSession', val + end + + # DeadLetteringOnMessageExpiration: True, False + # + # This field controls how the Service Bus handles a message whose TTL has expired. If it is enabled and a message + # expires, the Service Bus moves the message from the queue into the queue's dead-letter sub-queue. If disabled, + # message will be permanently deleted from the queue. Settable only at queue creation time. + # + # Default: false + def dead_lettering_on_message_expiration + to_bool description['DeadLetteringOnMessageExpiration'] + end + + def enable_dead_lettering_on_message_expiration=(val) + _set 'DeadLetteringOnMessageExpiration', val + end + + # MaxDeliveryCount: Number + # + # A message is automatically deadlettered after this number of deliveries. + def max_delivery_count + to_i description['MaxDeliveryCount'] + end + + def max_delivery_count=(val) + _set 'MaxDeliveryCount', val + end + + # MaxSizeInMegaBytes: Number + # + # Specifies the maximum queue size in megabytes. Any attempt to enqueue a message that will cause the queue to + # exceed this value will fail. You can only set this parameter at queue creation time using the following values: + # + # Range: 1 - 1024 (valid values are 1024, 2048, 3072, 4096, 5120) + # Default: 1*1024 (valid values are 1024, 2048, 3072, 4096, 5120) + def max_size_in_megabytes + to_i description['MaxSizeInMegabytes'] + end + + def max_size_in_megabytes=(val) + _set 'MaxSizeInMegabytes', val + end + + # SizeinBytes: Number + # + # Reflects the actual bytes that messages in the queue currently occupy toward the queue's quota. + # + # Range: 0 - MaxTopicSizeinMegaBytes + def size_in_bytes + to_i description['SizeInBytes'] + end + + def size_in_bytes=(val) + _set 'SizeInBytes', val + end + + + # DefaultMessageTimeToLive: XML datetime + # + # Depending on whether DeadLettering is enabled, a message is automatically moved to the DeadLetterQueue or + # deleted if it has been stored in the queue for longer than the specified time. This value is overwritten + # by a TTL specified on the message if and only if the message TTL is smaller than the TTL set on the queue. + # This value is immutable after the Queue has been created: + # + # Range: 1 second - TimeSpan.MaxValue + # Default: TimeSpan.MaxValue + def default_message_time_to_live + to_interval description['DefaultMessageTimeToLive'] + end + + def default_message_time_to_live=(val) + _set 'DefaultMessageTimeToLive', val + end + + # RequiresDuplicateDetection: True, False + # + # Settable only at queue creation time. + # + # Default for durable queue: false + def requires_duplicate_detection + to_bool description['RequiresDuplicateDetection'] + end + + def requires_duplicate_detection=(val) + _set 'RequiresDuplicateDetection', val + end + + # DuplicateDetectionHistoryTimeWindow + # + # Specifies the time span during which the Service Bus will detect message duplication. + # + # Range: 1 second - 7 days + # Default: 10 minutes + def duplicate_detection_history_time_window + to_interval description['DuplicateDetectionHistoryTimeWindow'] + end + + def duplicate_detection_history_time_window=(val) + _set 'DuplicateDetectionHistoryTimeWindow', val + end + + # EnableBatchedOperations + # + # Enables or disables service side batching behavior when performing operations for the specific queue. When + # enabled, service bus will collect/batch multiple operations to the backend to be more connection efficient. + # + # If user wants lower operation latency then they can disable this feature. + def enable_batched_operations + to_bool description['EnableBatchedOperations'] + end + + def enable_batched_operations=(val) + _set 'EnableBatchedOperations', val + end + + def ordered_props + [ + 'LockDuration', + 'MaxSizeInMegabytes', + 'RequiresDuplicateDetection', + 'RequiresSession', + 'DefaultMessageTimeToLive', + 'DeadLetteringOnMessageExpiration', + 'DuplicateDetectionHistoryTimeWindow', + 'MaxDeliveryCount', + 'EnableBatchedOperations', + 'SizeInBytes', + 'MessageCount' + ] + end + end + end end \ No newline at end of file