Skip to content

update_provisioning_template

update_provisioning_template(
    template_name: TemplateName,
    *,
    config_overrides: Optional[IoTClientConfig] = None,
    description: Optional[TemplateDescription] = None,
    enabled: Optional[Enabled2] = None,
    default_version_id: Optional[TemplateVersionId] = None,
    provisioning_role_arn: Optional[RoleArn] = None,
    pre_provisioning_hook: Optional[ProvisioningHook] = None,
    remove_pre_provisioning_hook: Optional[RemoveHook] = None,
) -> UpdateProvisioningTemplateResponse

Updates a provisioning template.

Requires permission to access the UpdateProvisioningTemplate action.

Parameters:

  • template_name (TemplateName) –

    The name of the provisioning template.

  • description (Optional[TemplateDescription], default: None ) –

    The description of the provisioning template.

  • enabled (Optional[Enabled2], default: None ) –

    True to enable the provisioning template, otherwise false.

  • default_version_id (Optional[TemplateVersionId], default: None ) –

    The ID of the default provisioning template version.

  • provisioning_role_arn (Optional[RoleArn], default: None ) –

    The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.

  • pre_provisioning_hook (Optional[ProvisioningHook], default: None ) –

    Updates the pre-provisioning hook template. Only supports template of type FLEET_PROVISIONING. For more information about provisioning template types, see type.

  • remove_pre_provisioning_hook (Optional[RemoveHook], default: None ) –

    Removes pre-provisioning hook template.

Raises:

Source code in docs_src/capo_iot/_services/io_t.py
def update_provisioning_template(
    self,
    template_name: "capo_iot.types.template_name.TemplateName",
    *,
    config_overrides: Optional[IoTClientConfig] = None,
    description: Optional[
        "capo_iot.types.template_description.TemplateDescription"
    ] = None,
    enabled: Optional["capo_iot.types.enabled2.Enabled2"] = None,
    default_version_id: Optional[
        "capo_iot.types.template_version_id.TemplateVersionId"
    ] = None,
    provisioning_role_arn: Optional["capo_iot.types.role_arn.RoleArn"] = None,
    pre_provisioning_hook: Optional[
        "capo_iot.types.provisioning_hook.ProvisioningHook"
    ] = None,
    remove_pre_provisioning_hook: Optional[
        "capo_iot.types.remove_hook.RemoveHook"
    ] = None,
) -> "capo_iot.types.update_provisioning_template_response.UpdateProvisioningTemplateResponse":
    """<p>Updates a provisioning template.</p> <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">UpdateProvisioningTemplate</a> action.</p>

    Args:
        template_name: <p>The name of the provisioning template.</p>
        description: <p>The description of the provisioning template.</p>
        enabled: <p>True to enable the provisioning template, otherwise false.</p>
        default_version_id: <p>The ID of the default provisioning template version.</p>
        provisioning_role_arn: <p>The ARN of the role associated with the provisioning template. This IoT role grants permission to provision a device.</p>
        pre_provisioning_hook: <p>Updates the pre-provisioning hook template. Only supports template of type <code>FLEET_PROVISIONING</code>. For more information about provisioning template types, see <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningTemplate.html#iot-CreateProvisioningTemplate-request-type">type</a>.</p>
        remove_pre_provisioning_hook: <p>Removes pre-provisioning hook template.</p>

    Raises:
        capo_iot.errors.conflicting_resource_update_exception.ConflictingResourceUpdateException: <p>A conflicting resource update exception. This exception is thrown when two pending updates cause a conflict.</p>
        capo_iot.errors.internal_failure_exception.InternalFailureException: <p>An unexpected error has occurred.</p>
        capo_iot.errors.invalid_request_exception.InvalidRequestException: <p>The request is not valid.</p>
        capo_iot.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource does not exist.</p>
        capo_iot.errors.unauthorized_exception.UnauthorizedException: <p>You are not authorized to perform this operation.</p>
        capo_iot.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_iot.types.update_provisioning_template_request.UpdateProvisioningTemplateRequest]",
    ) -> OperationResponse[
        "capo_iot.types.update_provisioning_template_response.UpdateProvisioningTemplateResponse"
    ]:
        import capo_iot._operations.aws_iot_service.update_provisioning_template

        output, http_response = (
            capo_iot._operations.aws_iot_service.update_provisioning_template.update_provisioning_template(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateProvisioningTemplate")
    )
    input_: capo_iot.types.update_provisioning_template_request.UpdateProvisioningTemplateRequest = {
        "template_name": template_name
    }
    if description is not None:
        input_["description"] = description
    if enabled is not None:
        input_["enabled"] = enabled
    if default_version_id is not None:
        input_["default_version_id"] = default_version_id
    if provisioning_role_arn is not None:
        input_["provisioning_role_arn"] = provisioning_role_arn
    if pre_provisioning_hook is not None:
        input_["pre_provisioning_hook"] = pre_provisioning_hook
    if remove_pre_provisioning_hook is not None:
        input_["remove_pre_provisioning_hook"] = remove_pre_provisioning_hook

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output