mns/mns_request.py (389 lines of code) (raw):

#coding=utf-8 # Copyright (C) 2015, Alibaba Cloud Computing #Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: #The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. class RequestBase: def __init__(self): self.method = "" self.request_id = None def set_req_info(self, req_info): if req_info is not None: if req_info.request_id is not None: self.request_id = req_info.request_id class ResponseBase(): def __init__(self): self.status = -1 self.header = {} self.error_data = "" def get_requestid(self): return self.header.get("x-mns-request-id") class SetAccountAttributesRequest(RequestBase): def __init__(self, logging_bucket = None): RequestBase.__init__(self) self.logging_bucket = logging_bucket self.method = "PUT" class SetAccountAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class GetAccountAttributesRequest(RequestBase): def __init__(self): RequestBase.__init__(self) self.method = "GET" class GetAccountAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.logging_bucket = "" class CreateQueueRequest(RequestBase): def __init__(self, queue_name, visibility_timeout = -1, maximum_message_size = -1, message_retention_period = -1, delay_seconds = -1, polling_wait_seconds = -1, logging_enabled = None): RequestBase.__init__(self) self.queue_name = queue_name self.visibility_timeout = visibility_timeout self.maximum_message_size = maximum_message_size self.message_retention_period = message_retention_period self.delay_seconds = delay_seconds self.polling_wait_seconds = polling_wait_seconds self.logging_enabled = logging_enabled self.method = "PUT" class CreateQueueResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.queue_url = "" class DeleteQueueRequest(RequestBase): def __init__(self, queue_name): RequestBase.__init__(self) self.queue_name = queue_name self.method = "DELETE" class DeleteQueueResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class ListQueueRequest(RequestBase): def __init__(self, prefix = u"", ret_number = -1, marker = u"", with_meta = False): RequestBase.__init__(self) self.prefix = prefix self.ret_number = ret_number self.marker = marker self.with_meta = with_meta self.method = "GET" class ListQueueResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.queueurl_list = [] self.next_marker = u"" self.queuemeta_list = [] class SetQueueAttributesRequest(RequestBase): def __init__(self, queue_name, visibility_timeout = -1, maximum_message_size = -1, message_retention_period = -1, delay_seconds = -1, polling_wait_seconds = -1, logging_enabled = None): RequestBase.__init__(self) self.queue_name = queue_name self.visibility_timeout = visibility_timeout self.maximum_message_size = maximum_message_size self.message_retention_period = message_retention_period self.delay_seconds = delay_seconds self.polling_wait_seconds = polling_wait_seconds self.logging_enabled = logging_enabled self.method = "PUT" class SetQueueAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class GetQueueAttributesRequest(RequestBase): def __init__(self, queue_name): RequestBase.__init__(self) self.queue_name = queue_name self.method = "GET" class GetQueueAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.active_messages = -1 self.create_time = -1 self.delay_messages = -1 self.delay_seconds = -1 self.inactive_messages = -1 self.last_modify_time = -1 self.maximum_message_size = -1 self.message_retention_period = -1 self.queue_name = "" self.visibility_timeout = -1 self.polling_wait_seconds = -1 self.logging_enable = None class SendMessageRequest(RequestBase): def __init__(self, queue_name, message_body, delay_seconds = -1, priority = -1, base64encode = True): RequestBase.__init__(self) self.queue_name = queue_name self.message_body = message_body self.delay_seconds = delay_seconds self.priority = priority self.base64encode = base64encode self.method = "POST" class SendMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_id = "" self.message_body_md5 = "" self.receipt_handle = "" class SendMessageRequestEntry: def __init__(self, message_body, delay_seconds = -1, priority = -1): self.message_body = message_body self.delay_seconds = delay_seconds self.priority = priority class BatchSendMessageRequest(RequestBase): def __init__(self, queue_name, base64encode): RequestBase.__init__(self) self.queue_name = queue_name self.base64encode = base64encode self.method = "POST" self.message_list = [] def add_message(self, message_body, delay_seconds = -1, priority = -1): msg = SendMessageRequestEntry(message_body, delay_seconds, priority) self.message_list.append(msg) class SendMessageResponseEntry: def __init__(self): self.message_id = "" self.message_body_md5 = "" class BatchSendMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_list = [] class PeekMessageRequest(RequestBase): def __init__(self, queue_name, base64decode = True): RequestBase.__init__(self) self.queue_name = queue_name self.base64decode = base64decode self.method = "GET" class PeekMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.dequeue_count = -1 self.enqueue_time = -1 self.first_dequeue_time = -1 self.message_body = "" self.message_id = "" self.message_body_md5 = "" self.priority = -1 class BatchPeekMessageRequest(RequestBase): def __init__(self, queue_name, batch_size, base64decode = True): RequestBase.__init__(self) self.queue_name = queue_name self.batch_size = batch_size self.base64decode = base64decode self.method = "GET" class PeekMessageResponseEntry: def __init__(self): self.dequeue_count = -1 self.enqueue_time = -1 self.first_dequeue_time = -1 self.message_body = "" self.message_id = "" self.message_body_md5 = "" self.priority = -1 class BatchPeekMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_list = [] class ReceiveMessageRequest(RequestBase): def __init__(self, queue_name, base64decode = True, wait_seconds = -1): RequestBase.__init__(self) self.queue_name = queue_name self.base64decode = base64decode self.wait_seconds = wait_seconds self.method = "GET" class ReceiveMessageResponse(PeekMessageResponse): def __init__(self): PeekMessageResponse.__init__(self) self.next_visible_time = -1 self.receipt_handle = "" class BatchReceiveMessageRequest(RequestBase): def __init__(self, queue_name, batch_size, base64decode = True, wait_seconds = -1): RequestBase.__init__(self) self.queue_name = queue_name self.batch_size = batch_size self.base64decode = base64decode self.wait_seconds = wait_seconds self.method = "GET" class ReceiveMessageResponseEntry(): def __init__(self): self.dequeue_count = -1 self.enqueue_time = -1 self.first_dequeue_time = -1 self.message_body = "" self.message_id = "" self.message_body_md5 = "" self.priority = -1 self.next_visible_time = "" self.receipt_handle = "" class BatchReceiveMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_list = [] class DeleteMessageRequest(RequestBase): def __init__(self, queue_name, receipt_handle): RequestBase.__init__(self) self.queue_name = queue_name self.receipt_handle = receipt_handle self.method = "DELETE" class DeleteMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class BatchDeleteMessageRequest(RequestBase): def __init__(self, queue_name, receipt_handle_list): RequestBase.__init__(self) self.queue_name = queue_name self.receipt_handle_list = receipt_handle_list self.method = "DELETE" class BatchDeleteMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class ChangeMessageVisibilityRequest(RequestBase): def __init__(self, queue_name, receipt_handle, visibility_timeout): RequestBase.__init__(self) self.queue_name = queue_name self.receipt_handle = receipt_handle self.visibility_timeout = visibility_timeout self.method = "PUT" class ChangeMessageVisibilityResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.receipt_handle = "" self.next_visible_time = -1 class CreateTopicRequest(RequestBase): def __init__(self, topic_name, maximum_message_size = -1, logging_enabled = None): RequestBase.__init__(self) self.topic_name = topic_name self.maximum_message_size = maximum_message_size self.logging_enabled = logging_enabled self.method = "PUT" class CreateTopicResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.topic_url = "" class DeleteTopicRequest(RequestBase): def __init__(self, topic_name): RequestBase.__init__(self) self.topic_name = topic_name self.method = "DELETE" class DeleteTopicResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class ListTopicRequest(RequestBase): def __init__(self, prefix = "", ret_number = -1, marker = "", with_meta = False): RequestBase.__init__(self) self.prefix = prefix self.ret_number = ret_number self.marker = marker self.with_meta = with_meta self.method = "GET" class ListTopicResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.topicurl_list = [] self.next_marker = "" self.topicmeta_list = [] class SetTopicAttributesRequest(RequestBase): def __init__(self, topic_name, maximum_message_size = -1, logging_enabled = None): RequestBase.__init__(self) self.topic_name = topic_name self.maximum_message_size = maximum_message_size self.logging_enabled = logging_enabled self.method = "PUT" class SetTopicAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class GetTopicAttributesRequest(RequestBase): def __init__(self, topic_name): RequestBase.__init__(self) self.topic_name = topic_name self.method = "GET" class GetTopicAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_count = -1 self.create_time = -1 self.last_modify_time = -1 self.maximum_message_size = -1 self.message_retention_period = -1 self.topic_name = "" self.logging_enabled = None class PublishMessageRequest(RequestBase): def __init__(self, topic_name, message_body, message_tag="", direct_mail=None, direct_sms=None): RequestBase.__init__(self) self.topic_name = topic_name self.message_body = message_body self.message_tag = message_tag self.direct_mail = direct_mail self.direct_sms = direct_sms self.method = "POST" class PublishMessageResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.message_id = "" self.message_body_md5 = "" class SubscribeRequest(RequestBase): def __init__(self, topic_name, subscription_name, endpoint, notify_strategy = "", notify_content_format = "", filter_tag = ""): RequestBase.__init__(self) self.topic_name = topic_name self.subscription_name = subscription_name self.endpoint = endpoint self.filter_tag = filter_tag self.notify_strategy = notify_strategy self.notify_content_format = notify_content_format self.method = "PUT" class SubscribeResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.subscription_url = "" class UnsubscribeRequest(RequestBase): def __init__(self, topic_name, subscription_name): RequestBase.__init__(self) self.topic_name = topic_name self.subscription_name = subscription_name self.method = "DELETE" class UnsubscribeResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class ListSubscriptionByTopicRequest(RequestBase): def __init__(self, topic_name, prefix = "", ret_number = -1, marker = ""): RequestBase.__init__(self) self.topic_name = topic_name self.prefix = prefix self.ret_number = ret_number self.marker = marker self.method = "GET" class ListSubscriptionByTopicResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.subscriptionurl_list = [] self.next_marker = "" self.subscriptionmeta_list = [] class SetSubscriptionAttributesRequest(RequestBase): def __init__(self, topic_name, subscription_name, endpoint = "", notify_strategy = "", notify_content_format = "", filter_tag = ""): RequestBase.__init__(self) self.topic_name = topic_name self.subscription_name = subscription_name self.endpoint = endpoint self.filter_tag = filter_tag self.notify_strategy = notify_strategy self.notify_content_format = notify_content_format self.method = "PUT" class SetSubscriptionAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) class GetSubscriptionAttributesRequest(RequestBase): def __init__(self, topic_name, subscription_name): RequestBase.__init__(self) self.topic_name = topic_name self.subscription_name = subscription_name self.method = "GET" class GetSubscriptionAttributesResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.topic_owner = "" self.topic_name = "" self.subscription_name = "" self.endpoint = "" self.filter_tag = "" self.notify_strategy = "" self.notify_content_format = "" self.create_time = -1 self.last_modify_time = -1 class OpenServiceRequest(RequestBase): def __init__(self): RequestBase.__init__(self) self.method = "POST" class OpenServiceResponse(ResponseBase): def __init__(self): ResponseBase.__init__(self) self.oder_id = ""