def _add_domainname_plan()

in chalice/deploy/planner.py [0:0]


    def _add_domainname_plan(self, resource, endpoint_type):
        # type: (models.DomainName, str) -> Sequence[InstructionMsg]
        api_calls = []  # type: List[InstructionMsg]

        params = {
            'protocol': resource.protocol.value,
            'tags': resource.tags,
            'endpoint_type': endpoint_type,
            'domain_name': resource.domain_name,
        }
        params['certificate_arn'] = resource.certificate_arn
        if resource.tls_version is not None:
            params['security_policy'] = resource.tls_version.value

        if not self._remote_state.resource_exists(resource):
            domain_name_api_call = (
                models.APICall(
                    method_name='create_domain_name',
                    params=params,
                    output_var=resource.resource_name
                ),
                "Creating custom domain name: %s\n" % resource.domain_name
            )

        else:
            domain_name_api_call = (
                models.APICall(
                    method_name='update_domain_name',
                    params=params,
                    output_var=resource.resource_name
                ),
                "Updating custom domain name: %s\n" % resource.domain_name
            )

        api_calls.extend([
            domain_name_api_call,
            models.StoreValue(
                name='hosted_zone_id',
                value=KeyDataVariable(resource.resource_name,
                                      'hosted_zone_id')
            ),
            models.RecordResourceVariable(
                resource_type='domain_name',
                resource_name=resource.resource_name,
                name='hosted_zone_id',
                variable_name='hosted_zone_id'
            ),
            models.StoreValue(
                name='alias_domain_name',
                value=KeyDataVariable(resource.resource_name,
                                      'alias_domain_name')
            ),
            models.RecordResourceVariable(
                resource_type='domain_name',
                resource_name=resource.resource_name,
                name='alias_domain_name',
                variable_name='alias_domain_name'
            ),
            models.StoreValue(
                name='certificate_arn',
                value=KeyDataVariable(resource.resource_name,
                                      'certificate_arn')
            ),
            models.RecordResourceVariable(
                resource_type='domain_name',
                resource_name=resource.resource_name,
                name='certificate_arn',
                variable_name='certificate_arn'
            ),
            models.StoreValue(
                name='security_policy',
                value=KeyDataVariable(resource.resource_name,
                                      'security_policy')
            ),
            models.RecordResourceVariable(
                resource_type='domain_name',
                resource_name=resource.resource_name,
                name='security_policy',
                variable_name='security_policy'
            ),
            models.RecordResourceValue(
                resource_type='domain_name',
                resource_name=resource.resource_name,
                name='domain_name',
                value=resource.domain_name
            )
        ])
        return api_calls