def create_sqs_queue_in_region()

in syndicate/core/transform/terraform/converter/tf_sqs_converter.py [0:0]


    def create_sqs_queue_in_region(self, name, resource,
                                   tf_queue_name, fifo_queue, region=None,
                                   provider=None):
        vis_timeout = resource.get('visibility_timeout')
        if vis_timeout:
            if vis_timeout < 0 or vis_timeout > 43200:
                raise AssertionError(
                    'Visibility timeout must be '
                    'between 0 and 43200 seconds')
        delay_seconds = resource.get('delay_seconds')
        if delay_seconds:
            if delay_seconds < 0 or delay_seconds > 900:
                raise AssertionError(
                    'Delay seconds for queue must be '
                    'between 0 and 900 seconds')

        maximum_message_size = resource.get('maximum_message_size')
        if maximum_message_size:
            if maximum_message_size < 1024 or maximum_message_size > 262144:
                raise AssertionError(
                    'Maximum message size must be '
                    'between 1024 and 262144 bytes')

        message_retention_period = resource.get('message_retention_period')
        if message_retention_period:
            if message_retention_period < 60 or message_retention_period > 1209600:
                raise AssertionError(
                    'Message retention size must be '
                    'between 60 and 1209600 seconds')

        receive_mes_wait_sec = resource.get(
            'receive_message_wait_time_seconds')
        if receive_mes_wait_sec:
            if receive_mes_wait_sec < 0 or receive_mes_wait_sec > 20:
                raise AssertionError(
                    'Receive message wait time must be '
                    'between 0 and 20 seconds')

        content_based_deduplication = resource.get(
            'content_based_deduplication')
        redrive_policy = resource.get('redrive_policy')
        policy = resource.get('policy')
        if policy:
            if not policy.get('Version'):
                policy['Version'] = '2008-10-17'
            policy = json.dumps(policy)

        kms_master_key_id = resource.get('kms_master_key_id')
        kms_data_reuse_period = resource.get(
            'kms_data_key_reuse_period_seconds')
        if kms_data_reuse_period:
            if kms_data_reuse_period < 60 or kms_data_reuse_period > 86400:
                raise AssertionError(
                    'KMS key reuse period must be '
                    'between 60 and 86400 seconds')

        queue = self._sqs_queue(tf_queue_name=tf_queue_name, queue_name=name,
                                redrive_policy=redrive_policy,
                                delay_seconds=delay_seconds,
                                receive_wait_time_seconds=receive_mes_wait_sec,
                                max_message_size=maximum_message_size,
                                message_retention_seconds=message_retention_period,
                                fifo_queue=fifo_queue,
                                content_based_deduplication=content_based_deduplication,
                                kms_master_key_id=kms_master_key_id,
                                kms_data_key_reuse_period_seconds=kms_data_reuse_period,
                                visibility_timeout_seconds=vis_timeout,
                                policy=policy,
                                provider=provider)
        self.template.add_aws_sqs_queue(queue)

        if policy:
            tf_policy_name = build_terraform_resource_name(name,
                                                           'policy', region)
            sqs_policy = self._aws_sqs_queue_policy(
                tf_policy_name=tf_policy_name,
                policy=policy,
                tf_queue_name=tf_queue_name,
                provider=provider)
            self.template.add_aws_sqs_queue_policy(meta=sqs_policy)